問題
タイトルの通り、あるデータのリレーション先が存在するかどうかによってバリデーションをかけたいと思っています。
具体的には、
postsとcommenstが多対多の関係になっています。
$post->commentsで値が存在するかどうかによって次のページに進めるかどうかを分けたいです。
以下、コントローラです。
PHP
1public function nextPage(Request $request) { 2 $comment_exists = Rule::exists('posts', 'id')->where(function ($query) { 3 $query->has('comments'); 4 }); 5 6 \Validator::make($request->all(), [ 7 'post' => ['required', $post_exists], 8 ])->validate(); 9 10 return view('post');
以下、エラーメッセージです。
error
1Call to undefined method Illuminate\Database\Query\Builder::has()
$request->postが"1"だった場合、id:1のpostレコードに
リレーションしているcommentsが存在しているかどうかを知りたいのですが、
上記のhasメソッドが使えないようです。
hasメソッドを使わず、他の方法で何か良い案があれば教えていただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。