2017-01-26 4 views
-1

image of codeКак кондиционировать весь() метод в Laravel 5.2 (где условие)

public function createSchedule() 
{ 
    $faculty = Faculty::all()->where('id','='1); 

    $section = Section::all(); 
    $subject = Subject::all(['id', 'course_code', 'course_description']); 
    $room = Room::all(['id', 'room_name']); 
    return view('schedule.create', compact(['faculty',$faculty],['subject',$subject],['section',$section],['room',$room])); 
} 

Как кондиционировать весь() метод в Laravel 5.2 (где условие)

$faculty = Faculty::all()->where('id', '=', 1); 
+0

Ваш код вопрос является 'где («ID»,«=», 1) ', но ваш код изображения' где ('id', '=' 1) ' –

ответ

2

В красноречивых вызова all() статический метод на модели дает вам коллекцию всех записей в таблице вместо построителя запросов.

Если вы хотите, чтобы захватить только одну запись на его основе это первичный ключ (идентификатор?) Вы должны использовать find() метод:

$faculty = Faculty::find(1); 

Если вы хотите создать более сложный запрос, который вы могли бы использовать:

$faculty = Faculty::where('age', '>', 40)->get(); 

Это создаст коллекцию объектов Faculty, которая соответствует возрастному состоянию. Если вы хотите получить только первую запись, которая соответствует вашим требованиям, вы можете использовать first() вместо get().

$faculty = Faculty::where('age', '>', 40)->first(); 
$faculty = Faculty::where('id', 1)->first(); 
+0

ах, спасибо, сэр – jessa

1
$faculty = Faculty::where('id', '=', 1)->all(); 
0

Как и в ответ Криса Cynarski вы можете напрямую позвонить where на модели и get, чтобы получить коллекцию, которая соответствует условию, определенному в where заявлении

$faculty = Faculty::where('age', '>', 40)->get(); 

Но для более сложное кондиционирование, вы можете использовать метод filter(), например

$faculty = Faculty::all()->filter(function($value, $key){ return $value->isOld(); });

где Изольда() представляет собой метод, определенный в модели факультета проверки, чтобы увидеть, если возраст более 40