用户不更新Laravel

时间:2017-08-03 11:38:32

标签: php mysql laravel eloquent

更新方法:

public function update(UserUpdateRequest $request, Users $uzytkownik)
    {
        $this->authorize('update', $uzytkownik);

        if ( $uzytkownik->update([
            'birth' => $request->birth,
            'sex' => $request->sex,
            'about' => $request->about,
        ]) )
        {
            return 1;
        }

        return 0;
    }

此处显示第1页中的更新。就像它做的那样。 但在db中没有任何改变。

$uzytkownik是合适的用户,并且 这是dd($uzytkownik);

enter image description here

低于显示正确输入的dd($request->birth.'---'.$request->sex.'---'.$request->about);

enter image description here

为什么它无法正常工作?

2 个答案:

答案 0 :(得分:3)

根据documentation

  

批量作业   您还可以使用create方法将新模型保存在一行中。插入的模型实例将从方法返回给您。但是,在执行此操作之前,您需要在模型上指定可填充或保护属性,因为所有Eloquent模型都会默认防止批量分配。

您需要确保$fillable$guarded已正确设置,否则更改可能不会持久。

答案 1 :(得分:0)

你也可以这样做:

public function update(UserUpdateRequest $request, Users $uzytkownik)
{
    $this->authorize('update', $uzytkownik);

    $uzytkownik->birth = $request->birth;
    $uzytkownik->sex   = $request->sex;
    $uzytkownik->about = $request->about;

    if ( $uzytkownik->save() )
    {
        return 1;
    }

    return 0;
}