Моя версия Laravel 5.5.13.
Я создал отношения «многие ко многим» между моделью пользователя и моделью домашних животных. Домашние животные могут принадлежать нескольким пользователям.
Я пытаюсь сделать в своем методе update
в контроллере, получить список всех связанных идентификаторов пользователей. Итак, я попытался:
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();
});
$pet->users()->get()->lists('id')
? поскольку->users()
является классом отношения, а не массивом. - person Bagus Tesa   schedule 03.10.2017