【问题标题】:Laravel : Creating default object from empty valueLaravel:从空值创建默认对象
【发布时间】:2019-03-14 13:04:05
【问题描述】:

我在尝试编辑数据库中已存在的数据时遇到以下问题。 我的控制器名称是 UserController.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'); 并说:“从空值创建默认对象”

我是 laravel 的新手,不明白为什么会这样。 是因为我的身材吗?

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

【问题讨论】:

    标签: laravel laravel-5 eloquent edit laravel-request


    【解决方案1】:

    我认为问题出在这里:

    <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');
    

    【讨论】:

    • 是的,就是这样,我觉得错过这样的事情有点羞耻。非常感谢
    猜你喜欢
    • 2017-11-29
    • 2018-07-18
    • 1970-01-01
    • 2021-05-22
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多