Laravel : 从空值创建默认对象
Laravel : Creating default object from empty value
我在尝试编辑数据库中已存在的数据时遇到以下问题。
我的控制器名称是 UserController.php
错误:从空值创建默认对象。
我可以从我的数据库中提取数据并 post 它在我的表单中。尝试编辑时发生错误。
这是导致错误的代码块。
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');
并说:"Creating default object from empty value"
我是 laravel 的新手,不明白为什么会这样。
是因为我的表格吗?
<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');
我在尝试编辑数据库中已存在的数据时遇到以下问题。 我的控制器名称是 UserController.php
错误:从空值创建默认对象。
我可以从我的数据库中提取数据并 post 它在我的表单中。尝试编辑时发生错误。
这是导致错误的代码块。
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');
并说:"Creating default object from empty value"
我是 laravel 的新手,不明白为什么会这样。 是因为我的表格吗?
<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');