プログラミング初心者です
問題
アプリ作成中に、ユーザーが作成したフォルダを、ユーザー毎に一覧表示、作成ができていなく、どのユーザーでログインしても同じ画面が表示されてしまうことに気づきました。
解決方法
HomeController.php
//フォルダ一覧画面
public function home(Request $request)
{
$folders = $request->user()->folders;
}
解説
・user()はRequestクラスの中にあるメソッドで、ユーザー情報を取得します。ご参考にどうぞ。
・foldersはUser.phpにリレーション定義したfoldersメソッドです。
つまり、$requestであらゆる情報を取得、user()でユーザー情報を取得、foldersでuser()で取得したユーザーに合ったフォルダを取得する流れになっています。
最初user()がなんなのか分からず調べるのに時間かかりました。
備考
HomeController.php
//フォルダ作成画面
public function CreateFolderForm()
{
$user = Auth::id();
return view('user.CreateFolder',['user' => $user]);
}
フォルダの作成画面で作成が実行される時に、ログインしてるユーザーのIDを渡すようにviewに渡しています。
これは、これはこの人の画面という情報をDBに保存するためです。