So I have used this format again. In my routes.php I have
Route::controller('datatables', 'HomeController', [
'PaymentsData' => 'payments.data',
'getIndex' => 'datatables',
]);
In my HomeController.php I have
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);
}
Anytime I try php artisan
I get [BadMethodCallException] Method controller does not exist.
Question, is this form of doing it Deprecation or why anyone spot something wrong? Kindly assist. Thank you.
As far as I'm aware that's never been available for Laravel 5. I haven't used 4 so I'm not sure about prior to 5. But in 5 you need to use
Route::get
andRoute::post
.Yep, it was removed as using implicit controllers is bad practice - https://github.com/illuminate/routing/commit/772fadce3cc51480f25b8f73065a4310ea27b66e#diff-b10a2c4107e225ce309e12087ff52788L259
The
controller
method is deprecated since Laravel 5.3. But now, you can use theresource
method, which is meant for the same purpose as thecontroller
method:From the docs:
Use it as:
The downside of this implicit routing is that you have to name your methods consistently, more about it in the docs.
In most cases, better practise would be explicit routing, as it makes your code much more clear and understandable.