我正在尝试做路由控制器,在我的路由文件中它看起来像这样:
Route::get('/data', 'ProcessController@data');
Route::get('/data2', 'ProcessController@data2');
Route::get('/data3', 'ProcessController@data3');
Route::get('/data4', 'ProcessController@data4');
正如你可以看到那里的模式。如何将所有内容组成一行,这样我就不需要重复分配路由了?
谢谢。
答案 0 :(得分:2)
我可以看到一个模式,但是您无法在一行中为不同的控制器操作分配不同的路径,但您可以将此一个添加为最后一条路径,因为这条路线将捕获所有内容,您的其他路线可能不会被击中:
Route::get('/{data}', 'ProcessController@process');
在你的控制器中:
<?php
class ProcessController extends Controller {
public function process($data)
{
$this->{$data}(); // execute your method
}
public function data() {}
public function data1() {}
public function data2() {}
public function data3() {}
}
这是未经测试的代码,您需要更多代码,因为您还需要测试控制器中是否存在该方法,如果不存在,则将用户重定向到另一个。< / p>