无法在多对多关系中使用“列表”
Unable to use `lists` in many to many relationship
我的Laravel版本是5.5.13。
我在用户模型和宠物模型之间创建了多对多关系。宠物可以属于多个用户。
我正在尝试在控制器的 update
方法中执行操作,获取所有关联用户 ID 的列表。所以我尝试了:
public function update(Request $request, Pet $pet)
{
dd($pet->users()->lists('id'));
$pet->update($request->all());
return response()->json($pet, 200);
}
但是我得到:
Call to undefined method 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();
});
list()
在 Laravel 中不再可用。或者,您可以使用 pluck()
并像这样提取所有项目 pluck()->all();
pluck('key')->all();
pluck()->all();
引用 doc
laravel 已弃用 lists() 方法,改用 pluck。
https://laracasts.com/discuss/channels/laravel/lists-deprecated-replacement
我的Laravel版本是5.5.13。
我在用户模型和宠物模型之间创建了多对多关系。宠物可以属于多个用户。
我正在尝试在控制器的 update
方法中执行操作,获取所有关联用户 ID 的列表。所以我尝试了:
public function update(Request $request, Pet $pet)
{
dd($pet->users()->lists('id'));
$pet->update($request->all());
return response()->json($pet, 200);
}
但是我得到:
Call to undefined method 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();
});
list()
在 Laravel 中不再可用。或者,您可以使用 pluck()
并像这样提取所有项目 pluck()->all();
pluck('key')->all();
pluck()->all();
引用 doc
laravel 已弃用 lists() 方法,改用 pluck。
https://laracasts.com/discuss/channels/laravel/lists-deprecated-replacement