Laravel 我正在尝试向用户添加评级,并在null上运行对成员函数Review()的错误调用。在拉威尔5.8

Laravel 我正在尝试向用户添加评级,并在null上运行对成员函数Review()的错误调用。在拉威尔5.8,laravel,laravel-5.8,Laravel,Laravel 5.8,我正在尝试添加评级和评论到用户这里是迄今为止我所做的 我已经做了一个单独的控制器进行审查 在该控制器的存储方法中,我的代码如下 public function store(Request $request,User $user) { // $up=User::find($user->id); if($request->review) { $up->Review()->attach($req

我正在尝试添加评级和评论到用户这里是迄今为止我所做的 我已经做了一个单独的控制器进行审查 在该控制器的存储方法中,我的代码如下

public function store(Request $request,User $user)
   {
       //
       $up=User::find($user->id);
       if($request->review)
       {
           $up->Review()->attach($request->review);
       }
     if($request->rating)
     {
         $up->Review()->attach($request->rating);
     }
       return redirect()->back();

   }
我已经为审查创建了一个seprate模型,其中我的代码如下所示

class Review extends Model
{
    //
    protected $fillable=['rating','review'];
    Public function User()
    {

        return $this->belongsToMany(User::class);
    }
}
 public function up()
    {
        Schema::create('review_user', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->integer('user_id');
            $table->string('rating');
            $table->string('review');
            $table->timestamps();
        });
    }
<form action="{{route('ReviewsUser',$user->id)}}" method="POST">
                    @csrf
                    @method('PUT')




                            <div class="feedback-yes-no">
                                <strong>Your Rating</strong>
                                <div class="leave-rating">
                                    <input type="radio" name="rating" id="rating-1" value="1" checked/>
                                    <label for="rating-1" class="icon-material-outline-star"></label>
                                    <input type="radio" name="rating" id="rating-2" value="2"/>
                                    <label for="rating-2" class="icon-material-outline-star"></label>
                                    <input type="radio" name="rating" id="rating-3" value="3"/>
                                    <label for="rating-3" class="icon-material-outline-star"></label>
                                    <input type="radio" name="rating" id="rating-4" value="4"/>
                                    <label for="rating-4" class="icon-material-outline-star"></label>
                                    <input type="radio" name="rating" id="rating-5" value="5"/>
                                    <label for="rating-5" class="icon-material-outline-star"></label>
                                </div><div class="clearfix"></div>
                            </div>

                            <textarea class="with-border" placeholder="Enter Your Comments" name="review" id="review" cols="7" required></textarea>



                        <!-- Button -->
                        <button class="button full-width button-sliding-icon ripple-effect" type="submit" >Your Review's <i class="icon-material-outline-arrow-right-alt"></i></button>
                    </form>
在我的用户模型中,我是在哪里做的

  Public function Review()
      {

          return $this->belongsToMany(Review::class);
      }
我的迁移看起来像这样

class Review extends Model
{
    //
    protected $fillable=['rating','review'];
    Public function User()
    {

        return $this->belongsToMany(User::class);
    }
}
 public function up()
    {
        Schema::create('review_user', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->integer('user_id');
            $table->string('rating');
            $table->string('review');
            $table->timestamps();
        });
    }
<form action="{{route('ReviewsUser',$user->id)}}" method="POST">
                    @csrf
                    @method('PUT')




                            <div class="feedback-yes-no">
                                <strong>Your Rating</strong>
                                <div class="leave-rating">
                                    <input type="radio" name="rating" id="rating-1" value="1" checked/>
                                    <label for="rating-1" class="icon-material-outline-star"></label>
                                    <input type="radio" name="rating" id="rating-2" value="2"/>
                                    <label for="rating-2" class="icon-material-outline-star"></label>
                                    <input type="radio" name="rating" id="rating-3" value="3"/>
                                    <label for="rating-3" class="icon-material-outline-star"></label>
                                    <input type="radio" name="rating" id="rating-4" value="4"/>
                                    <label for="rating-4" class="icon-material-outline-star"></label>
                                    <input type="radio" name="rating" id="rating-5" value="5"/>
                                    <label for="rating-5" class="icon-material-outline-star"></label>
                                </div><div class="clearfix"></div>
                            </div>

                            <textarea class="with-border" placeholder="Enter Your Comments" name="review" id="review" cols="7" required></textarea>



                        <!-- Button -->
                        <button class="button full-width button-sliding-icon ripple-effect" type="submit" >Your Review's <i class="icon-material-outline-arrow-right-alt"></i></button>
                    </form>
我的表格是这样的

class Review extends Model
{
    //
    protected $fillable=['rating','review'];
    Public function User()
    {

        return $this->belongsToMany(User::class);
    }
}
 public function up()
    {
        Schema::create('review_user', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->integer('user_id');
            $table->string('rating');
            $table->string('review');
            $table->timestamps();
        });
    }
<form action="{{route('ReviewsUser',$user->id)}}" method="POST">
                    @csrf
                    @method('PUT')




                            <div class="feedback-yes-no">
                                <strong>Your Rating</strong>
                                <div class="leave-rating">
                                    <input type="radio" name="rating" id="rating-1" value="1" checked/>
                                    <label for="rating-1" class="icon-material-outline-star"></label>
                                    <input type="radio" name="rating" id="rating-2" value="2"/>
                                    <label for="rating-2" class="icon-material-outline-star"></label>
                                    <input type="radio" name="rating" id="rating-3" value="3"/>
                                    <label for="rating-3" class="icon-material-outline-star"></label>
                                    <input type="radio" name="rating" id="rating-4" value="4"/>
                                    <label for="rating-4" class="icon-material-outline-star"></label>
                                    <input type="radio" name="rating" id="rating-5" value="5"/>
                                    <label for="rating-5" class="icon-material-outline-star"></label>
                                </div><div class="clearfix"></div>
                            </div>

                            <textarea class="with-border" placeholder="Enter Your Comments" name="review" id="review" cols="7" required></textarea>



                        <!-- Button -->
                        <button class="button full-width button-sliding-icon ripple-effect" type="submit" >Your Review's <i class="icon-material-outline-arrow-right-alt"></i></button>
                    </form>

@csrf
@方法('PUT')
您的评级
你的评论是
我试图做的是存储其他用户提供给用户的评论。任何能够帮助我克服此错误的人都将不胜感激

Call to a member function Review() on null 
此错误意味着您调用成员函数
Review()
的变量
$up
的值为空。这意味着它无法在中找到您的用户

$up=User::find($User->id)

您的post路由没有路由参数来传递用户ID以首先查找用户

因此,改变这一现状,

Route::post('Reviews','ReviewsController@store')->name('ReviewsUser');
对此

Route::post('Reviews/{user}','ReviewsController@store')->name('ReviewsUser');
现在将通过
User$User

此错误意味着您调用成员函数
Review()
的变量
$up
的值为空。这意味着它无法在中找到您的用户

$up=User::find($User->id)

您的post路由没有路由参数来传递用户ID以首先查找用户

因此,改变这一现状,

Route::post('Reviews','ReviewsController@store')->name('ReviewsUser');
对此

Route::post('Reviews/{user}','ReviewsController@store')->name('ReviewsUser');

现在将通过
User$User

在控制器中捕获用户ID,如何
$User->Review()->附加($request->Review)?和plz发布路线代码非工作路线::post('Reviews','ReviewsController@store')->name('ReviewUser');在您的过程中,您没有将{user}参数绑定到
用户
模型,因此您无法在应用商店操作中找到用户您没有正确地传递您的用户模型,您的表单是什么样子的?我已经编辑了u can-see表单,关于
$user->Review()->attach($request->Review()->attach)呢?和plz发布路线代码非工作路线::post('Reviews','ReviewsController@store')->name('ReviewUser');在您的路径中,您没有将{user}参数绑定到
用户
模型,因此无法在存储操作中找到用户您没有正确传递用户模型,你的表单是什么样子的?我也编辑了u can-see表单。你能建议我如何在laravel 5.8中为用户添加评级吗?我认为我做得不对。你可以分享的所有视频教程都会有很大帮助。你能建议我如何在laravel 5.8中为用户添加评级吗?我认为我做得不对所有你能分享的视频教程都会很有帮助。。