我有三条路线:
Route::get('{project}', 'ProjectController@showProject')
->where('project', '[A-Za-z0-9-]+');
Route::get('{project}/{module}', 'ProjectController@showModule')
->where('module', '[A-Za-z0-9-]+');
Route::get('{project}/{module}/{submodule}/{resources}', 'ProjectController@showGraphsResources')
->where(array('submodule' => '[A-Za-z0-9-]+','resource', '[A-Za-z0-9-]+'));
只有projectController
中的功能不同
如何使用不同的动作制作一条路线?
有些想法......(这是不正确的)
Route::get('{project}/{module}/{submodule}/{resources}', 'ProjectController@showProject' 'ProjectController@showModule','ProjectController@showGraphsResources',)
->where(array('submodule' => '[A-Za-z0-9-]+','resource', '[A-Za-z0-9-]+'));
答案 0 :(得分:0)
我想:
Route::get('{project}/{module}/{submodule}/{resources}', 'ProjectController@showGraphsResources')->where(array('submodule' => '[A-Za-z0-9-]+','resource', '[A-Za-z0-9-]+'));
Route::get('{project}/{module}', 'ProjectController@showModule')->where('module', '[A-Za-z0-9-]+');
Route::get('{project}', 'ProjectController@showProject')->where('project', '[A-Za-z0-9-]+');
应该有用。
答案 1 :(得分:0)
使用一条路线进行多项行动(IMO)看起来不错,但是......你可以尝试这样的事情:
Route::get(
'{project}/{module?}/{submodule?}/{resources?}',
function($project, $module = null, submodule = null, $resources = null) {
if(!is_null($project)) {
$pc = App::make('ProjectController');
if(is_null($module)) return $pc->showProject($project);
else {
if(is_null($submodule)) return $pc->showModule($project, $module);
else {
if(!is_null($resources)) return $pc->showGraphsResources($project, $module, $submodule, $resources);
}
}
}
}
);
现在在你的ProjectController
中创建三个这样的方法:
class ProjectController extends BaseController {
public function showProject($project)
{
//...
}
public function showModule($project, $module)
{
//...
}
public function showGraphsResources($project, $module, $submodule, $resources)
{
//...
}
}
或者,您只能使用一个missingMethod
来捕获控制器中的所有方法,例如:
class ProjectController extends BaseController {
public function missingMethod($args = array())
{
// Now check the $args passed,
// depending on the $args you
// may take an action, try dd($args)
}
}