2014-12-02 2 views
0

Я новичок в Laravel, и я смотрю видеоурок, который учит Laravel 3, к сожалению, Laravel 4 очень отличается от laravel 3, и я не знаю почему? и я боюсь, что, может быть, Laravel 5 будет настолько отличаться от Laravel 4.Как использовать laravel Красноречивый, чтобы взять только одно поле?

Я собираюсь выбрать все данные об одном поле из моих пользователей таблицы:

$user=new user; 
    $username=$user::find(1)->username; 
    return $username; 

Верхний код работает верно, но только вернуть имя пользователя, что это идентификатор равен 1, но я хочу сделать что-то, как показано ниже:

$user=new user; 
$username=$user::all()->username; 
return $username; 

Этот код имеет ошибку $ пользователя :: все() -> имя пользователя; и ошибка является:

Не определено свойство: Осветить \ Database \ Eloquent \ Коллекция :: $ имя пользователя

ответ

1

Вы можете использовать функцию lists(), описанный here
Он возвращает массив со всеми значениями одного свойства.

(Также вам не нужно, чтобы создать экземпляр для получения всех пользователей)

$usernames = User::lists('username'); 

Если вы хотели бы иметь еще один столбец в качестве ключа вашего массива (например, ID) это сделать:

$usernames = User::lists('username', 'id'); 

не беспокойся о Laravel 5. Некоторые вещи будут меняться, но многие вещи остаются неизменными. В том числе все, что касается «Красноречивого» и запросов БД в целом (по крайней мере, насколько я знаю)

+0

Не могли бы вы рассказать мне, что такое разные проблемы ** all() ** и ** get() ** – M98

+0

@Kermani 'all()' можно использовать только статически. 'get()' не имеет такого ограничения. – Hkan

+0

@ HakanAktaş, хотя это правда, на самом деле это не разница между двумя ... – lukasgeiter

Смежные вопросы