【问题标题】:How to retrieve Route parameters in Controller __construct()如何在 Controller __construct() 中检索 Route 参数
【发布时间】:2014-10-10 23:38:44
【问题描述】:

我正在尝试将两个参数拉入我的 Controller 的 __construct() 方法中,但我不断收到以下调试信息

调用未定义的方法 Illuminate\Routing\Router::parameters()

我特别想做的是。

  • "portal""issue" 参数拉入我的 __construct 并设置 $currentPortal 和我类中的 $currentIssue 变量(受保护的变量)
  • 在不同的控制器操作中使用这两个受保护的变量

你会在下面找到我的 __construct() 方法

protected $portals, $issues, $currentPortal, $currentIssue;

public function __construct(\App\Entities\Portal $portals, \App\Entities\Issue $issues){
    $this->portals = $portals;
    $this->issues = $issues;

    dd(\Route::parameters());

    if($portal = \Route::getParameter('portal'))
        $this->currentPortal = $this->portals->findBySlug($portal);

    if($issue = \Route::getParameter('issue'))
        $this->currentIssue = $this->issues->findByKey($issue);
}

如您所见,我使用 dd() 作为调试助手,以查看当前 Route 参数是否被拉取。

在 router.php 定义中没有问题,因为我在尝试实现这个方便的“hack”以提取当前对象之前已经对其进行了测试。

获取当前路由参数有什么帮助吗?

谢谢!

【问题讨论】:

    标签: laravel-4 laravel-routing


    【解决方案1】:

    哦,是的,我在发布这个问题后就想通了!

    如果有人遇到和我一样的问题,我会留下答案..

    您需要在附加任何其他请求之前拉出 current() 路由,所以在我的情况下,我应该这样做

    Route::current()->getParameter('MY PARAM NAME')

    应该是这样的

    【讨论】:

      猜你喜欢
      • 2015-10-14
      • 2014-11-17
      • 2020-05-02
      • 2015-01-09
      • 2014-06-08
      • 2014-06-23
      • 1970-01-01
      • 2010-12-08
      • 2018-02-01
      相关资源
      最近更新 更多