【问题标题】:Error: Call to a member function update() on array laravel错误:调用数组 laravel 上的成员函数 update()
【发布时间】:2017-10-20 03:04:51
【问题描述】:

我收到此错误“调用数组上的成员函数 update()”,我不知道为什么,是因为我正在更新数组吗?我检查了与此类似的其他资源,但与数组没有太大关系,所以我不确定该怎么做。提前谢谢你

信息:我正在尝试更新 HTML 表格,但一直收到此错误

控制器:

public function update1(Request $request, $id){
    $object2 = qualification::find($id);
    $object2 = array();
$object2['School'] = implode(' , ', $request->School);
$object2['SDate'] = implode(' , ', $request->SDate);
$object2['EDate'] = implode(' , ', $request->EDate);
$object2['qualification'] = implode(' , ', $request->qualification);
 $object2->update();
    return redirect('/home');
}

资质型号:

class qualification extends Eloquent
{
    protected $fillable = array('School', 'user_id', 'SDate', 'EDate', 'qualification');

    // DEFINE RELATIONSHIPS --------------------------------------------------
    public function personal_infos() {
        return $this->belongsTo('App\personal_info');
    }
}

【问题讨论】:

  • 是的。而是更新您的模型。
  • 你的意思是改变资格模型里面的东西?
  • @fubar 我已经在我的问题中添加了我的资格模型,模型不应该是这样的吗?
  • 是的,那么您想用$object2 完成什么??

标签: php arrays laravel laravel-5.3


【解决方案1】:

您需要在Qualification 模型上单独设置属性,或者一次性设置所有属性,然后调用save()

public function update1(Request $request, $id){
    $object2 = qualification::find($id);
    $test = array();
    $test['School'] = implode(' , ', $request->School);
    $test['SDate'] = implode(' , ', $request->SDate);
    $test['EDate'] = implode(' , ', $request->EDate);
    $test['qualification'] = implode(' , ', $request->qualification);
    $object2->update($test);
    return redirect('/home');
}

【讨论】:

  • 我正在尝试进行更新,而不是保存,但当您说更新我的模型时,我设法找出了您的意思。我必须这样做的地方“$object2->update($test);”数组中的 $object2 变量需要更改为 $test。非常感谢您的帮助!!
  • 在现有模型上调用 save() 会更新它。如果是新模型,它会将数据插入到数据库中。
猜你喜欢
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 1970-01-01
  • 2020-10-04
  • 2021-08-07
  • 2018-05-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多