2017-10-03 3 views
0

私のLaravelのバージョンは5.5.13です。多対多の関係で `lists`を使用できません

私はユーザーモデルとペットモデルの間に多対多の関係を作成しました。ペットは複数のユーザーに属することができます。

私はコントローラ内でupdateメソッドを実行しようとしていますが、関連するすべてのユーザーIDのリストを取得しています。だから私は試してみました:

public function update(Request $request, Pet $pet) 
{ 
    dd($pet->users()->lists('id')); 
    $pet->update($request->all()); 
    return response()->json($pet, 200); 
} 

は、しかし、私は得る:未定義のメソッドを照らし\ Databaseへ

コール\クエリー\ビルダー::リスト()

lists()がないようですが。

私がdd($pet->users())を実行すると、エラーは発生せず、多くの情報が表示されます。

* lists()が機能するように手伝ってください。

Petモデルでの私の関係は次のとおりです。

​​

そしてUserモデルの私relatinshipがある:ここでは

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(); 
}); 
+1

ものについて '$ pet->ユーザー() - >を取得() - >リスト( 'ID')'? ' - > users()'は配列ではなくリレーションクラスであるからです。 –

+1

wahありがとう、私はコメントする前にapiをチェックしていたはずです。 –

+0

ありがとう@BagusTesa - 私もそれを犯しています:(私はまだ本当にlaravelに新しいので、私はまだ読んでドキュメントを探る方法を学んでいます: – Blagoh

答えて

1

list()ですLaravelではこれ以上利用できません。別の方法としては、()メソッドを使用すると、代わりに摘み取るリストを非推奨としているpluck()を使用して、このpluck()->all();

pluck('key')->all(); 
pluck()->all(); 

リファレンスdoc