【问题标题】:Laravel Routing to controller actionsLaravel 路由到控制器动作
【发布时间】: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');
    }
} 

提前感谢您的帮助。

【问题讨论】:

    标签: php laravel laravel-routing


    【解决方案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()]);
        });

    【讨论】:

      猜你喜欢
      • 2013-10-05
      • 2015-07-20
      • 2023-03-05
      • 2023-03-27
      • 1970-01-01
      • 2017-10-17
      • 2016-12-14
      • 2014-09-11
      • 2014-04-21
      相关资源
      最近更新 更多