Laravel 5.6 странное поведение - Laravel не видит контроллер после того, как я переименую его - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть контроллер с именем RankController.php.Я переименовываю в UsersController.php вручную, когда хочу разделить некоторые методы.Затем я решил переименовать его обратно в RankController.php.Примечание: я только изменяю имя файла, я не меняю имя класса.Вот код контроллера.

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Schema;
use App\User;
use App\Rank;
use App\Ban;

class RankController extends Controller
{

    // Constructor function
    public function __construct()
    {

        // Check if user is logged in
        $this->middleware('auth');
    }

    public function search(Request $request)
    {
        $this->validate($request, ['search' => 'required', ]);

        $users = User::select('id', 'name')->where([
            ['name', '!=', Auth()->user()->name],
            ['name', 'like', "%" . $request->input('search') . "%"], 
        ])->paginate(10);

        return view('rank.search')
            ->with('users', $users);
    }

}

А вот где я называю контроллер:

{!! Form::open(['action' => ['RankController@search'], 'method' => 'POST']) !!}
    {{Form::text('search', '', ['placeholder' => 'Search a user'])}}
    {{Form::submit('Search', ['class' => 'btn btn-primary'])}}
{!! Form::close() !!}

Примечание. Это единственный файл, в котором я получаю сообщение об ошибке.Это ошибка: Action App \ Http \ Controllers \ RankController @ search не определено.(Просмотр: /var/www/htdocs/Proiect/resources/views/layouts/app.blade.php) (Просмотр: /var/www/htdocs/Proiect/resources/views/layouts/app.blade.php)

Я пробую код на другом ПК, и он генерирует ту же ошибку.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Убедитесь, что имя файла и класс совпадают, а затем попробуйте следующие команды:

1)php artisan route:cache
2)php artisan route:clear
3)composer dumpautoload -o
0 голосов
/ 25 сентября 2018

Мне кажется, вам нужно обновить маршрут для "UsersController" и запустить "composer dumpautoload "

...