【问题标题】:Laravel 5.5 controller update function issueLaravel 5.5 控制器更新功能问题
【发布时间】:2018-05-09 19:07:26
【问题描述】:

我在要存储表单值的控制器中有更新功能。这是代码;

public function update(Request $request, $id=1){
        $data = array(); 

        $data->firstName = $request->get('firstName');
        $data->lastName  = $request->get('lastName');
        $data->email     = $request->get('email');
        $data->company   = $request->get('company');
        $data->website   = $request->get('website');
        UserAdmin::where('id', Auth::user()->id)->update($data);

        //return view('Administrator.profile.profile',$data);
        return redirect('administrator/myprofile');
    }

但是,提交表单后,它显示错误;

尝试分配非对象的属性

【问题讨论】:

  • $data 是数组而不是对象

标签: laravel laravel-5


【解决方案1】:

那是因为你can't assign array values with $data->key。数组不是对象,因此具有不同的语法。

这将起作用:

public function update(Request $request, $id=1){
    $data = array(); 

    $data['firstName'] = $request->get('firstName');
    $data['lastName'] = $request->get('lastName');

    // etc
}

【讨论】:

    【解决方案2】:

    您正在尝试对数组使用对象运算符 (->)。

    对于您要实现的目标,最好使用该模型来发挥您的优势。通过使用 findOrFail() 你可以返回一个对象。

    public function update(Request $request, $id=1){
    
        $data = UserAdmin::findOrFail(Auth::id());
        $data->firstName = $request->get('firstName');
        $data->lastName  = $request->get('lastName');
        $data->email     = $request->get('email');
        $data->company   = $request->get('company');
        $data->website   = $request->get('website');
        $data->save();
    
        //return view('Administrator.profile.profile',$data);
        return redirect('administrator/myprofile');
    }
    

    这将实现您想要的,但更清洁。 查看 Laravel Eloquent 文档here

    【讨论】:

      猜你喜欢
      • 2020-11-11
      • 2012-04-06
      • 2020-07-29
      • 1970-01-01
      • 2018-08-09
      • 2016-02-04
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多