После отправки формы я получаю «Метод Illuminate \ Validation \ Validator :: validate255 не существует». - PullRequest
0 голосов
/ 05 мая 2018

После отправки формы я получаю эту ошибку «Метод Illuminate \ Validation \ Validator :: validate255 не существует.»,

Я проверил функции, где у меня есть проверка, и даже не могу найти, в чем проблема?

Вот моя первая функция магазина:

 public function store(Request $request)
{
    // Validate form

    $this->validate($request, [
        'name' => 'required|255',
        'email' => 'required|email|unique:users'
    ]);

    // Generate password
    if(Request::has('password') && !empty($request->password)){
        $password = trim($request->password);
    } else{
        # set the manual password
        $length = 10;
        $keyspace = '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ';
        $str = '';
        $max = mb_strlen($keyspace, '8bit') - 1;

    for ($i = 0; $i < $length; ++$i) {
        $str .= $keyspace[random_int(0, $max)];
    }
        $password = $str;
    }

    $user = new User();

    // Insert User's data into database
    $user->name = $request->name;
    $user->email = $request->email;
    $user->password = Hash::make($password);


    if($user->save()){
        return redirect()->route('users.show', $user->id);
    } else{
        Session::flash('danger', 'Sorry, a problem occured while creating this user.');
        return redirect()->route('users.create');
    }

}

А вот функция обновления для редактирования:

public function update(Request $request, $id)
{
    $this->validate($request, [
        'name' => 'required|max:255',
        'email' => 'required|email|unique:users,email,'.$id
    ]);

    $user = User::findOrFail($id);
    $user->name = $request->name;
    $user->email = $request->email;

    if($request->password_options == 'auto'){
        # set the manual password
        $length = 10;
        $keyspace = '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ';
        $str = '';
        $max = mb_strlen($keyspace, '8bit') - 1;

    for ($i = 0; $i < $length; ++$i) {
        $str .= $keyspace[random_int(0, $max)];
    }
        $password = $str;

    } elseif($request->password_options == 'manual'){
        $user->password = Hash::make($request->password);
    }

    if($user->save()){
        return redirect()->route('users.show', $id);
    } else{
        Session::flash('danger', 'There was a problem saving the updated user info to the database. Please, try again.');
        return redirect()->route('users.edit', $id);
    }
}

Я не думаю, что есть проблема с front-end, но если это может быть по какой-то причине, я обновлю пост.

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Возникла проблема с подтверждением имени.

Вы можете изменить код подтверждения с помощью приведенного ниже кода.

   $this->validate($request, [
        'name' => 'required|max:255',
        'email' => 'required|email|unique:users'
    ]);

Вы можете проверить доступные проверки Laravel по ссылке ниже: https://laravel.com/docs/5.6/validation#available-validation-rules

0 голосов
/ 05 мая 2018

шанс 'name' => 'required|255', до 'name' => 'required|max:255',

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...