查询生成器获取模态实例

query builder get modal instance

我正在使用 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).

但是我得到这个错误:

Exception: Property [type_seance] does not exist on this collection instance

感谢您的帮助!

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

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

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

Get()方法return一个集合对象它就像一个数组,需要用first方法获取第一个对象:

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

    return $seance->type_seance;
}

您也可以使用 find() 方法,但 id_seance 应该是您的 table:

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

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

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