Задать вопрос
mrusklon
@mrusklon
Не получается? Яростно гугли!

Почему появляется ошибка ::validateExist does not exist в laravel?

всем привет, пытаюсь обновить пользователя, выдает ошибку
BadMethodCallException
Method Illuminate\Validation\Validator::validateExist does not exist.


Я так понимаю какая то проблема с валидацией, но раньше вроде все работало, где искать?
роуты
Route::group(['namespace' => 'User', 'prefix' => 'users'], function (){
        Route::get('/','IndexController')->name('admin.user.index');
        Route::get('/create','CreateController')->name('admin.user.create');
        Route::post('/','StoreController')->name('admin.user.store');
        Route::get('/{user}','ShowController')->name('admin.user.show');
        Route::get('/{user}/edit','EditController')->name('admin.user.edit');
        Route::patch('/{user}','UpdateController')->name('admin.user.update');
        Route::delete('/{user}','DeleteController')->name('admin.user.delete');
    });


UpdateRequest.php

<?php

namespace App\Http\Requests\Admin\User;

use Illuminate\Foundation\Http\FormRequest;

class UpdateRequest extends FormRequest {
/**
* Determine if the user is authorized to make this request.
*
* return bool
*/
public function authorize() {
return true;
}

/**
* Get the validation rules that apply to the request.
*
* return array
*/
public function rules() {
return [
'name' => 'required|string',
'email' => 'required|email|unique:users,email,'.$this->user_id,
'user_id' => 'required|integer|exist:users,id',
'role' => 'required|integer',
];
}

public function messages() {
return [
'name.required' => 'это поле необходимо заполнить',
'name.string' => 'нужно использовать только буквы',
'email.required' => 'это поле необходимо заполнить',
'email.string' => 'нужно указать почту',
'email.email' => 'нужно указать корректную почту',
'email.unique' => 'пользователь с таким email уже существует',
];
}
}



UpdateController.php

<?php

namespace App\Http\Controllers\Admin\User;

use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\User\UpdateRequest;
use App\Models\User;

class UpdateController extends Controller
{
public function __invoke(UpdateRequest $request, User $user) {
$data = $request->validated();
$user->update($data);
return view('admin.user.show', compact('user'));
}
}

  • Вопрос задан
  • 622 просмотра
Подписаться 1 Простой 4 комментария
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы