我的Laravel版本是5.5.13。
我在User模型和Pet模型之间创建了多对多的关系。宠物可以属于多个用户。
我正在尝试使用控制器中的update
方法,获取所有相关用户ID的列表。所以我试过了:
public function update(Request $request, Pet $pet)
{
dd($pet->users()->lists('id'));
$pet->update($request->all());
return response()->json($pet, 200);
}
但是我得到了:
调用未定义的方法Illuminate \ Database \ Query \ Builder :: lists()
似乎没有lists()
。
如果我dd($pet->users())
,它不会出错并显示大量信息。
*请你帮忙让lists()
工作。
我在Pet
模型中的关系是:
public function users()
{
return $this->belongsToMany('App\User');
}
我在User
模型中的关系是:
public function pets()
{
return $this->belongsToMany('App\Pet');
}
以下是我对数据透视的迁移:
Schema::create('pet_user', function (Blueprint $table) {
$table->integer('pet_id')->unsigned()->index();
$table->foreign('pet_id')->references('id')->on('pets')->onDelete('cascade');
$table->integer('user_id')->unsigned()->index();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->timestamps();
});
答案 0 :(得分:1)
list()
。或者,您可以使用pluck()
并选择所有项目pluck()->all();
pluck('key')->all();
pluck()->all();
参考doc
答案 1 :(得分:1)
laravel已经弃用了lists()方法而不是使用pluck。
https://laracasts.com/discuss/channels/laravel/lists-deprecated-replacement