如何在laravel 5.2(where condition)中调用all()方法

时间:2017-01-26 14:26:42

标签: laravel-5.2

image of code

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(where condition)中调用all()方法

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

3 个答案:

答案 0 :(得分:2)

在Eloquent调用模型all()静态方法时,您可以收集表中的所有记录而不是查询构建器。

如果你想根据它的主键(id?)只抓一条记录,你应该使用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();

答案 1 :(得分:1)

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

答案 2 :(得分:0)

在Chris Cynarski的答案中,您可以直接调用模型上的whereget来获取与where语句中定义的条件相匹配的集合

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

但是对于更复杂的条件,您可以使用filter()方法,例如

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

其中isOld()是在Faculty模型中定义的方法,用于检查年龄是否超过40