私は2つのテーブル:users
,orders
を持っています。私は現在のユーザーのすべての注文を取得しようとします。Laravelの関連テーブルからデータを取得するにはどうすればいいですか?
Users Orders
_____ ______
id | name id | user_id
Userモデル:
public function orders(){
return $this->hasMany("App\Order");
}
注文モデル:コントローラで
public function user(){
return $this->hasOne("App\User", 'user_id', 'id');
}
問合せ:
public function index()
{
$orders = Order::where('user_id', Auth::guard('api')->id())->get();
return response()->json(
$orders->user
);
}
両方のテーブルに関連する行があるため、結果がNULLになります。何か問題があります。今
public function orders()
{
return $this->hasMany("App\Order", "user_id", "id");
}
:
public function user()
{
return $this->belongsTo("App\User"); // second and third arguments are unnecessary.
}
コントローラ機能が動作しませんが意味のないコレクション。その機能は何をすべきか? –
だから、私はテーブル 'ユーザ'からユーザに関するすべての情報を取得し、すべてのユーザの注文を同じリクエストで取得する必要があります。代わりに 'get()'を使うべきですか? – Dev
'Auth :: guard( 'api') - > id()'の代わりに 'Auth :: user() - > id'を使うのはどうですか?私はあなたが持っているものを使ってヌルを得る。 –