に対してレコードをフェッチ:Laravel 5.2:私は、コントローラ内のレコードをフェッチしていたユーザーIDでログインし
$tasks = Task::where('user_id', '=', Auth::user()->id);
return view('todo',compact('tasks'));
しかし、それはnullを返します。
Auth::user()->id
は2
を返します。
私に何か不足していますか?
に対してレコードをフェッチ:Laravel 5.2:私は、コントローラ内のレコードをフェッチしていたユーザーIDでログインし
$tasks = Task::where('user_id', '=', Auth::user()->id);
return view('todo',compact('tasks'));
しかし、それはnullを返します。
Auth::user()->id
は2
を返します。
私に何か不足していますか?
実際にレコードを取得する必要があります。あなたが持っているのは、\Illuminate\Database\Eloquent\Builder
のインスタンスですが、クエリに関連付けられている実際のレコードはありません。
Eloquentにデータをフェッチするように指示するには、get()
のいずれかを使用する必要があります。
同様:サイドノートとして
$tasks = Task::where('user_id', '=', Auth::user()->id)->get();
、あなたがするクエリを簡素化することができます:
: さらに$tasks = Task::where('user_id', Auth::user()->id)->get();
は、あなたのUser
モデルに、あなたはこれを行うことができます
public function tasks()
{
return $this->hasMany(Task::class) // make sure you use the full namespace here or use at the top of User.php
}
そして、あなたは簡単に行うことができます:in the docsが説明したように
$tasks = auth()->user()->tasks;
これは雄弁での関係です。