前提・実現したいこと
Matchingsテーブル
カラム名 | 属性 | 内容 |
---|---|---|
id | integer | マッチングID |
apply_id | integer | 申請user_id |
approve_id | integer | 承認user_id |
offer_id | integer | offer_id |
Reviewsテーブル
カラム名 | 属性 | 内容 |
---|---|---|
id | integer | マッチングID |
title | string | タイトル |
body | string | 内容 |
reviewer_id | integer | レビューしたuser_id |
reviewed_id | integer | レビューされたuser_id |
matching_id | integer | マッチングのid |
マッチングしたuser同士でreviewをしたいのですが、reviewer(レビューしたuser)は現在ログインしているuserで取得できますが,reviewed(レビューされるuser)のuser_idが取得出来なくて困っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
Controller
1public function new($id) 2 { 3 $current_user = Auth::id(); 4 $matching = Matching::where('id', $id)->first(); 5 return view('users.new', [ 6 'current_user' => $current_user, 7 'matching' => $matching, 8 ]); 9 } 10 11 public function store(Request $request, $id) 12 { 13 $current_user = Auth::user(); 14 $matching = Matching::find($id); 15 $reviewer = Matching::where('apply_id', Auth::id())->first(); 16 17 $review = Review::create([ 18 'star' => $request->star, 19 'title' => $request->title, 20 'body' => $request->body, 21 'reviewer_id' => $current_user->id, 22 'reviewed_id' =>$matching->approve_id, 23 'matching_id' => $matching->id 24 ]); 25 26 return redirect()->route('users.show', [ 27 'name' => $request->user()->name, 28 ]); 29 }
Blade
1<div class="c-user--Container"> 2 <h5 class="c-user--featureTitle">ユーザー名</h5> 3 <div class="c-user--featureArea"> 4 <div class="c-user"> 5 <img src="/img/wed.jpeg" alt=""class="c-user--image--sm" > 6 @if($current_user !== $matching->apply_id && $matching->approve_id) 7 <span class="">{{ $matching->apply->name}}</span> 8 @else 9 <span class="">{{ $matching->approve->name}}</span> 10 @endif 11 </div> 12 </div> 13 </div> 14 <div class="c-user--Container"> 15 <h5 class="c-user--featureTitle">評価</h5> 16 <div class="c-user--featureArea"> 17 <p class="c-user--body"> 18 <comment-star 19 rating={{ $reveiw->star ?? old('star')}} 20 > 21 22 </comment-star> 23 </p> 24 </div> 25 </div> 26 <div class="c-user--Container"> 27 <h5 class="c-user--featureTitle">タイトル</h5> 28 <div class="c-user--featureArea"> 29 <input type="text" name="title" value="{{ $review->title ?? old('title')}}" placeholder="タイトル名を入力してください" class="c-user--input"> 30 </div> 31 </div> 32 <div class="c-user--Container"> 33 <h5 class="c-user--featureTitle">内容</h5> 34 <div class="c-user--featureArea"> 35 <textarea name="body" value="" placeholder="内容を入力してください" class="c-user--text">{{ $review->body ?? old('body')}}</textarea> 36 </div> 37 </div> 38 <div class="p-comment--button"> 39 <button class="c-button--message">レビューを投稿する</button> 40 </div>
試したこと
例えば申請者->承認者のレビューは上記のとおり上手くいくのですが
承認者->申請者のレビューはデータの挿入がうまく行かないです。
apply_idとapprove_idはそれぞれmatchingsテーブルに格納されています。
ログインしている以外のuser_idの取得方法がわからないので
教えていただけると幸いです。
補足情報(FW/ツールのバージョンなど)
Laravel 7.3
php 7.4
Mac
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。