Laravel: создание объекта по умолчанию из пустого значения - PullRequest
0 голосов
/ 09 октября 2018

У меня возникла следующая проблема при попытке изменить данные, уже существующие в моей базе данных.имя моего контроллера - 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" />

1 Ответ

0 голосов
/ 09 октября 2018

Я думаю, что проблема здесь:

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