Laravel:从空值创建默认对象



我在尝试编辑数据库中已存在的数据时遇到以下问题。 我的控制器名称是用户控制器.php

错误:从空值创建默认对象。

我可以从我的数据库中提取数据并将其发布在我的表单中。 尝试编辑时会发生该错误。
下面是导致错误的代码块。

public function update(Request $request, $id)
{
$this->validate($request, [
'fname' => 'required',
'lname' => 'required',
'email' => 'required',
'phone' => 'required',
'address' => 'required',
'country' => 'required',
'city' => 'required',
'bday' => 'required',
'username' => 'required',
'password' => 'required',
'access' => 'required'
]);
$userList = users::find($id);
$userList->fname = $request->get('fname');
$userList->lname = $request->get('lname');
$userList->email = $request->get('email');
$userList->phone = $request->get('phone');
$userList->address = $request->get('address');
$userList->country = $request->get('country');
$userList->city = $request->get('city');
$userList->bday = $request->get('bday');
$userList->username = $request->get('username');
$userList->password = $request->get('password');
$userList->access = $request->get('access');
$userList->save();
return redirect()->route('users.index')->with('success', 'Data Updated');

}

我可以从调试器中看到我发送了新数据

GET Data empty
POST Data
_token   "mnC6GliLHdSazZkEpaxZQ97aAChr2LObcc9clMlk"
_method  "PATCH"
fname    "test"
lname    "user"
email    "test@user.lara"
phone    "12345678990"
address  "Streat"
country  "countryplace"
city     "somecity"
bday     "2018-01-01"
username     "tester"
password     "test"
access   "Client"

但它突出了$userList->fname = $request->get('fname');并说:"从空值创建默认对象"

我是拉拉维尔的新手,不明白为什么会发生这种情况。 是因为我的形态吗?

<form method="post" action="{{action('UserController@update','$id')}}">
{{csrf_field()}}
<input type="hidden" name="_method" value="PATCH" />

我认为问题就在这里:

<form method="post" action="{{action('UserController@update','$id')}}">

$id不应该使用引号,它应该是:

<form method="post" action="{{action('UserController@update',$id)}}">

现在因为你有引号,所以行:

$userList = users::find($id);

找不到用户,因为实际上它正在执行以下操作:

$userList = users::find('$id');

最新更新