Intereting Posts

Контроллер метода не существует.

Поэтому я снова использовал этот формат. На моих маршрутах.php у меня есть

Route::controller('datatables', 'HomeController', [ 'PaymentsData' => 'payments.data', 'getIndex' => 'datatables', ]); 

В моем HomeController.php у меня есть

  public function getIndex() { return view('payments.index'); } /** * Process datatables ajax request. * * @return \Illuminate\Http\JsonResponse */ public function Payments() { return Datatables::of(DB::table('customer'))->make(true); } 

В любое время, когда я пытаюсь использовать php artisan я получаю [BadMethodCallException] Method controller does not exist.

Вопрос, является ли эта форма его устареванием или почему кто-то видит что-то не так? Любезно помочь. Спасибо.

Насколько мне известно, это никогда не было доступно для Laravel 5. Я не использовал 4, поэтому я не уверен, что до 5. Но в 5 вам нужно использовать Route::get и Route::post .

 Route::get('datatables', ['as' => 'HomeController', 'uses' => 'HomeController@getIndex']); Route::get('payments-data', ['as' => 'HomeControllerPaymentsData', 'uses' => 'HomeController@Payments']); 

Да, он был удален, так как использование неявных контроллеров – это плохая практика – https://github.com/illuminate/routing/commit/772fadce3cc51480f25b8f73065a4310ea27b66e#diff-b10a2c4107e225ce309e12087ff52788L259

Метод controller устарел с тех пор, как Laravel 5.3. Но теперь вы можете использовать метод resource , который предназначен для той же цели, что и метод controller :

Из документов :

Маршрутизация ресурсов Laravel назначает типичные маршруты «CRUD» контроллеру с одной строкой кода. Например, вы можете создать контроллер, который обрабатывает все HTTP-запросы для «фотографий», хранящихся в вашем приложении.

Используйте его как:

 Route::resource('datatables', 'HomeController'); 

Недостатком этой неявной маршрутизации является то, что вы должны последовательно указывать свои методы, более подробно об этом в документах.

В большинстве случаев лучшей практикой будет явная маршрутизация, так как это делает ваш код более понятным и понятным.