Laravel到控制器动作的路由


Laravel Routing to controller actions

我已经尝试了一段时间了,现在让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()]);
    });