Php Laravel 5,如何根据收到的URL运行特定方法
在我的路由文件中,我有一个或多个路由用于测试目的:Php Laravel 5,如何根据收到的URL运行特定方法,php,laravel-5.1,laravel-routing,Php,Laravel 5.1,Laravel Routing,在我的路由文件中,我有一个或多个路由用于测试目的: /** testing controllers */ Route::get('viewemail', 'TestController@viewemail'); Route::get('restore', 'TestController@restore'); Route::get('sendemail', 'TestController@send_email'); Route::get('socket', 'TestController@sock
/** testing controllers */
Route::get('viewemail', 'TestController@viewemail');
Route::get('restore', 'TestController@restore');
Route::get('sendemail', 'TestController@send_email');
Route::get('socket', 'TestController@socket');
Route::get('colors', 'TestController@colors');
Route::get('view', 'TestController@view_test');
Route::get('numbers', 'TestController@numbers');
Route::get('ncf', 'TestController@ncf');
Route::get('dates', 'TestController@dates');
Route::get('print', 'TestController@printer');
Route::get('{variable}', 'TestController@execute');
/** End of testing controllers */
我希望消除所有这些路由,并简单地使用给定URL的名称来调用和返回方法:
我通过这种方式实现了这一点:
Route::get('{variable}', 'TestController@execute');
在我的测试控制器中:
public function execute($method){
return $this->$method();
}
Route::controller('users', 'UserController');
基本上我想知道的是,如果Laravel有一个内置的解决方案来实现这一点,我正在阅读文档,但找不到任何方法来实现这一点。来自官方文档:
Laravel允许您轻松定义一条路线来处理每一个问题
控制器类中的操作。首先,使用
路由::控制器方法。控制器方法接受两个参数
论据。第一个是控制器处理的基本URI,而
第二个是控制器的类名:
public function execute($method){
return $this->$method();
}
Route::controller('users', 'UserController');
接下来,只需向控制器添加方法。方法名称应以
它们响应的HTTP动词,后跟
URI:
正如您在上面的示例中所看到的,索引方法将响应
控制器处理的根URI,在本例中,它是用户
可以为要侦听的端点添加路由模式。将它们路由到控制器操作,然后检查请求:
class TestController extends Controller
{
public function handle(Request $request)
{
$method = $request->segment(1); // Gets first segment of URI
// Do something…
}
}
在您的路线服务提供商中:
$router->pattern('{variable}', 'foo|bar|qux|baz');
我读的是Routes文档而不是Controllers文档,它们应该有参考资料,而且我更喜欢我的方式。谢谢