いつもありがとうございます。
Laravelで、猫の写真を登録する機能を使っています。
view側で写真を登録する際に、ユーザーidが空の写真を表示するのに、whereNullを記載すると、
Method whereNull does not exist.というエラーが出ます。
以下、Controllerです。
CatsController 特定の猫で、かつ、user_idが空のものを取得したいです
namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Cat; // Cats情報の取得 use Storage; // 画像アップで追加してみた use App\Photo; // Photo機能で追加 use App\User; use Intervention\Image\ImageManagerStatic as Image; class CatsController extends Controller { public function show($id) { $cat = Cat::find($id); $photo = Photo::all()->where('cat_id', $id)->whereNull('user_id'); $applied = $cat->applied()->get(); $data = [ 'cat' => $cat, 'applieds' => $applied, 'photos' => $photo, ]; return view('admin.catshow', $data); }
whereNullだとうまくいかないのですが、
$photo = Photo::all()->where('cat_id', $id)->where('user_id', '');
とやるとうまく行きました。
ただなぜwhereNullでエラーが出てしまうのかお分かりになりましたら教えていただけると嬉しいです。
※ちなみに、別のところで、『空じゃないものを取得する』ということがやりたく、whereNotNullはうまくできました・・・
PhotosController 写真一覧ページでは、逆にuser_idが空でないものを取得する。こちらはエラーも出ずに成功。
namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Cat; // Cats情報の取得 use Storage; // 画像アップで追加してみた use App\Photo; use App\User; use Intervention\Image\ImageManagerStatic as Image; class PhotosController extends Controller { public function adminphotoindex() { $photos = Photo::whereNotNull('user_id')->orderBy('created_at', 'desc')->paginate(30); return view('admin.photo', [ 'photos' => $photos ]);
よろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/29 05:41