質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel 6

Laravel 6は、オープンソースなPHPのフレームワーク。Webアプリケーションの開発に適しており、バージョン6はLTSです。5.8での向上に加えて、セマンティックバージョニングの採用やLaravel Vaporとのコンパチビリティなどが変更されています。

Eloquent

Eloquentとは、PHPフレームワークのLaravelに最初から含まれているORM(Object-relational mapping:オブジェクト関係マッピング)です。

Q&A

1回答

383閲覧

【Laravel6】多対多のリレーションが組まれたテーブルをwithで紐づけた後、子情報側のカラムからwhereで絞り込みをしたい

maggot78

総合スコア2

Laravel 6

Laravel 6は、オープンソースなPHPのフレームワーク。Webアプリケーションの開発に適しており、バージョン6はLTSです。5.8での向上に加えて、セマンティックバージョニングの採用やLaravel Vaporとのコンパチビリティなどが変更されています。

Eloquent

Eloquentとは、PHPフレームワークのLaravelに最初から含まれているORM(Object-relational mapping:オブジェクト関係マッピング)です。

0グッド

1クリップ

投稿2023/01/04 18:02

前提

days(曜日名)
todos(予定)
day_todo
上記3つのテーブルで多対多のリレーションを組んである

実現したいこと

bladeで『どのユーザーが』『〇曜日に』『○○を行う』という表示を行いたいので、daysとtodosをwithで紐づけた後、特定のユーザーの情報のみを抽出したい

発生している問題・エラーメッセージ

Undefined variable: user

該当のソースコード

web.php

1Route::get('user/{user}', 'UserController@show')->name('user.show');

UserController.php

1 public function show($user){ 2 $user_info = User::where('id', '=', $user)->first(); 3 $user_todos = Day::with(['todos' => function ($query) { 4 $query->where('create_user_id', '=', $user); 5 }])->get(); 6 return view('users.show',['user_info'=>$user_info,'user_todos'=>$user_todos]); 7 }

試したこと

①「function ($query) {}」の中の$userだけを適当な数字に置き換えた
→エラー解消。2行目の段階では$userはきちんと定義されているが、「function ($query) {}」の中で$userが未定義になってしまっていることがわかる。

②「function ($query) {}」の中に「global $user;」の記述を追加
→エラーは出なくなったが、dd($user);で調べたところ$userの中身がnullになっていたため、解決になっていない。

要は「function ($query) {}」の中に$userを持ち込みたいです。
何か方法があればご教授いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Laravelの前にPHPの学習が必須。
https://www.php.net/manual/ja/functions.anonymous.php

投稿2023/01/05 00:50

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問