前提・実現したいこと
送信された値を元にテーブルからデータを取得するコードを記述していたのですが、if文の中の処理に対して
Cannot use object of type Illuminate\Database\Eloquent\Builder as array
とエラーが出てしまいました。
エラーの原因を知り、解決したいです。
該当のソースコード
php
1$ingredient_name_id = $request->input('ingredient_name_id'); 2$ingredient = Ingredient::select('id', 'ingredient_category_id', 'name', 'per_unit_id'); 3$per_unit = PerUnit::select('id', 'quantity', 'unit'); 4 5for ($i = 0; $i < count($ingredient_name_id); $i++) { 6 $ingredient_exists = $ingredient 7 ->where('id', $ingredient_name_id[$i]); 8 if ($ingredient_exists->exists()) { 9 // $ingredient_name_idに適切な値が送信された場合 10 $per_unit[$i] = $per_unit 11 ->where('id', $ingredient_exists->value('per_unit_id')) 12 ->get(); 13 } 14 } 15}
試したこと
エラーメッセージ的には、配列に対してクエリビルダを使用している状況が良くないと言っているのかと思ったので、
$per_unit、$ingredient_exists->value('per_unit_id')をdd()で確認してもデータは取得できているようです。
代入の部分が良くないのか、それとも他の箇所が原因なのか教えていただきたいです。
補足情報(FW/ツールのバージョンなど)
php7.4
Laravel6
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。