Laravel функции контроллера должны быть совместимы с базовым контроллером - PullRequest
0 голосов
/ 20 января 2020

Я создал новую ссылку на маршрут для функции проверки Users Controller в сети. php. Я также создаю функцию на контроллере пользователей, которая называется validate. Другие маршруты не имеют проблем, кроме этой.

Ошибка

(1/1) ErrorException
Declaration of App\Http\Controllers\UsersController::validate(App\$id) should be compatible with App\Http\Controllers\Controller::validate(Illuminate\Http\Request $request, array $rules, array $messages = Array, array $customAttributes = Array)

Веб-маршруты

Route::group(['middleware' => 'can:see-admin'], function () {
        Route::resource('users', 'UsersController', ['only' => ['index', 'destroy', 'create', 'validate']]);
        Route::post('users/store', 'UsersController@store')->name('user.store');
        Route::get('users/{user}/impersonate', 'UsersController@impersonate')->name('users.impersonate');
        Route::get('users/{id}', 'UsersController@validate')->name('users.validate'); //this is the new route that is created
    });

Пользовательский контроллер

class UsersController extends Controller
{
    public function validate($id)
    {
        $validation = User::validate($image);

        return back();
    }
}

Контроллер

namespace App\Http\Controllers;

use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}

1 Ответ

2 голосов
/ 20 января 2020

1: Не используйте это имя метода, оно будет использоваться validator.

2: попробуйте использовать другое имя действия. Поскольку в вашем действии отсутствует Request $request, попробуйте изменить его следующим образом:

use Illuminate\Http\Request; // Remember import Request
...
class UsersController extends Controller
{
    public function validateUser(Request $request, $id) {
        ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...