Laravel路由到控制器操作

时间:2014-07-05 06:50:51

标签: php laravel laravel-routing

我已经尝试了一段时间才能让laravel路由到我的控制器操作。 我不确定在laravel框架中执行此操作的最佳方法。

我在脑海中想象的是这样的。

我有一个路由设置链接到我的控制器操作。所以当我输入domain.com/Home/Profile 它将调用HomeController的配置文件操作。这将进行一些处理并在页面上显示视图。 (比如mvc4)

我可能会以错误的方式解决这个问题,但我只是想避免为每个视图制作一条路线。在解决这个问题的正确方法之后或者作为标准实践的laravel开发人员做的事情之后我会更多,因为每个视图都有一条路线感觉很奇怪。

到目前为止,这是我的代码:routes.php

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');
    }
} 

感谢您提前提供任何帮助。

3 个答案:

答案 0 :(得分:1)

找到适合我的答案。这是Restful Controllers

我用这行注册了控制器

Route::get('/', 'HomeController@index');
Route::controller('/', 'HomeController');

并将我的控制器操作更改为getProfile()

答案 1 :(得分:0)

http://laravel.com/docs/controllers#resource-controllers

Route::get('home/profile');
Route::resource('home', 'HomeController');

答案 2 :(得分:0)

此代码对我有用

$api->any('order_manage/{action?}', function ($action = 'index'){
        $app = app();
        $namespace = 'App\Http\Controllers';
        $controller = $app->make($namespace.'\ProjectOrderController');
        return $controller->callAction($action,[request()]);
    });