Laravel 路由到控制器动作

Posted

技术标签:

【中文标题】Laravel 路由到控制器动作【英文标题】:Laravel Routing to controller actions 【发布时间】:2014-08-26 08:31:04 【问题描述】:

我一直在尝试让 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();

);

家庭控制器:

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

提前感谢您的帮助。

【问题讨论】:

【参考方案1】:

找到对我有用的答案。这是 Restful 控制器

我用这条线注册了控制器

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

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

【讨论】:

如果我有参数?如何调用带参数的动作?例如:Route::get('/home/id', 'HomeController@index');【参考方案2】:

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

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

【讨论】:

难道我的行为没有任何回报【参考方案3】:

这段代码对我有用

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

【讨论】:

以上是关于Laravel 路由到控制器动作的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 4 通配符路由到不同的控制器

Laravel 4:路由到 localhost/controller/action

laravel-路由配置中@的作用

laravel 控制器多个方法共用一个路由

laravel路由别名

Laravel 4:将模型从过滤器传递到控制器动作