查询构建器获取模态实例

时间:2017-12-26 17:01:08

标签: php laravel laravel-query-builder

我使用的是Laravel 5.5。

我试图使用Laravel的查询生成器来获取对象实例。

public function functionName(Request $request) {
    $seance = Seance::where('id_seance', '=', $request->idSeance)->get();

    return $seance->type_seance;
}

我的模特:Seance(id_seance, type_seance, capacite_seance, niveau_seance, avec_coach, date_seance, heure_seance)

但是我收到了这个错误:

  

异常:此集合中不存在Property [type_seance]   实例

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

使用first()代替get()来获取对象而不是对象集合:

$seance = Seance::where('id_seance', $request->idSeance)->first();

here解释了这些方法之间的区别。

答案 1 :(得分:2)

Get()方法返回一个集合对象就像一个数组,你需要使用first方法来获取第一个对象:

public function functionName(Request $request) {
    $seance = Seance::where('id_seance', '=', $request->idSeance)->first();

    return $seance->type_seance;
}

您也可以使用find()方法,但id_seance应该是您表格的主键:

$seance = Seance::find($request->idSeance);
return $seance->type_seance;

答案 2 :(得分:2)

使用get()方法时,它将返回collection而不是模型的实例。我建议改用first()方法。

更好的是,使用Seance::find($request->idSeance)Seance::findOrFail($request->idSeance)。这假设您已正确定义了模型上的主键。