2017-08-03 83 views
1

更新方法。就像它做的那样。 但在数据库中没有任何变化。用户不更新Laravel

$uzytkownik是正确的用户,并 这是dd($uzytkownik);

enter image description here

及以下dd($request->birth.'---'.$request->sex.'---'.$request->about);这表明适当的输入

enter image description here

为什么不能正常工作?

+0

是否已进行了这些列在模型中可填写? –

+1

正如Sagar所建议的,可填充数组必须正确填充以使用更新并创建方法 – aaron0207

+0

Laravel的update()和create()函数返回模型,无论它是否已成功保存。你可以使用save()函数,它会返回一个你可以在if()语句中使用的有用布尔值。 – sunomad

回答

3

由于每documentation

质量分配 您还可以使用create方法来保存新模式在一行。插入的模型实例将从方法返回给您。但是,在此之前,您需要在模型上指定可填写或保护属性,因为所有Eloquent模型在默认情况下都可以防止大规模分配。

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

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; 
} 
+0

当你想要更新一个对象时,这似乎是更多的努力,当你需要做的就是保持模态属性是最新的 – Ian

+0

也许,但是在我看来,OP想要返回1或0,这取决于模型保存与否。然后,再次检索模型并进行比较以确保所有属性都正确地保存到数据库中会更容易。 – sunomad

+0

不工作,不更新 –