我已经尝试了一段时间了,现在让laravel路由到我的控制器动作。我不确定在laravel框架中最好的方法是什么。
我的脑海里是这样想象的。
我有一个路由设置链接到我的控制器的动作。所以当我输入domain.com/Home/Profile它会调用HomeController的profile动作。它将进行一些处理并在页面上显示视图。(如mvc4)
我可能会去这个错误的方式,但我只是试图避免为每个视图的路由。我更倾向于采用正确的方法来解决这个问题,或者采用任何laravel开发者的标准做法,因为每个视图都有一条路由会让人觉得很奇怪。
到目前为止,这是我的代码:Route::get('/', 'HomeController@index');
Route::any('/{controller}/{action?}', function ($controller, $action = 'index')
{
$class = $controller.'Controller';
$controller = new $class()
return $controller->{$action}();
});
HomeController:
class HomeController extends BaseController
{
protected $layout = 'layouts.master';
public function index()
{
$this->layout->content = View::make('index');
return View::make('index');
}
public function profile()
{
$this->layout->content = View::make('profile');
}
}
感谢您的帮助。
找到了适合我的答案。它是Restful控制器
我用这行
注册了控制器Route::get('/', 'HomeController@index');
Route::controller('/', 'HomeController');
并将控制器动作更改为getProfile()
http://laravel.com/docs/controllers#resource-controllers
Route::get('home/profile');
Route::resource('home', 'HomeController');
这段代码为我工作
$api->any('order_manage/{action?}', function ($action = 'index'){
$app = app();
$namespace = 'App'Http'Controllers';
$controller = $app->make($namespace.''ProjectOrderController');
return $controller->callAction($action,[request()]);
});