Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5,如何根据收到的URL运行特定方法_Php_Laravel 5.1_Laravel Routing - Fatal编程技术网

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文档,它们应该有参考资料,而且我更喜欢我的方式。谢谢