假设我有一个看起来像这样的控制器:
AController.php
<?php namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class AController extends Controller {
public function doThis(){...}
public function doThat(){...}
public function doThing(){...}
}
routes.php文件
Route::get('/doThis', [
'as' => 'acontroller.dothis', 'uses' => 'AController@doThis'
]);
Route::get('/doThis', [
'as' => 'acontroller.dothat', 'uses' => 'AController@doThat'
]);
Route::get('/doThis', [
'as' => 'acontroller.dothing', 'uses' => 'AController@doThing'
]);
有没有比使用Route::get()
更好的方法?我希望我的路线自动为ControllerName.methodName
,网址为/methodName
,而无需明确使用Route::get()
答案 0 :(得分:1)
您正在寻找一个隐含的控制器&#34; (docs here)。
如果您定义路线,请执行以下操作:
Route::controller('/', 'AController');
指定前缀(第一个参数)下的所有路由都将路由到该控制器。然后,Laravel希望将方法名称定义为HTTP谓词和路由的组合。
所以,你的控制器将是:
class AController extends Controller {
public function getDoThis(){...} // GET to /doThis
public function postDoThat(){...} // POST to /doThat
public function anyDoThing(){...} // any verb to /doThing
}