【问题标题】:Named routes with optional url $param(s) - Laravel 4带有可选 url $param(s) 的命名路由 - Laravel 4
【发布时间】:2014-05-21 11:42:35
【问题描述】:

我在使用 L4(可能是 symfony2?)路由时遇到了一些问题,我似乎无法在线或在精彩的 Code Bright 中找到任何资源,但在 IRC 中却一无所获。

我正在尝试通过控制器使用带有命名路由的可选参数,但在加载视图时收到错误。

路线:

Route::get('/topic/{topicID?}', array(
    'as'    => 'topicDetails',
    'uses'  => 'TopicController@showTopic'
));

控制器:

class TopicController extends BaseController {

    public function showTopic($topicID = null)
    {
        $data['topicID'] = $topicID;
        return View::make('topic_view', $data);
    }
}

查看

<a href="{{ route('topicDetails') }}">XXX</a>

错误:

Parameter "topicID" for route "topicDetails" must match "[^/]++" ("" given) to generate a corresponding URL.

我假设这没有将 null 值传递给 $param,但我对 L4 不够熟悉,无法弄清楚它为什么不起作用,而且我已经用尽了所有资源。

任何线索将不胜感激谢谢!

【问题讨论】:

  • 我似乎无法重新创建这个。使用您在此处发布的确切代码对我来说效果很好。
  • @jakeharris 试试这个&lt;a href="{{ route('topicDetails',array()) }}"&gt;XXX&lt;/a&gt;
  • @JasonLewis - 这是导航菜单中的永久链接,所以也许这就是您无法重新创建它的原因?我最终感到沮丧并使用 get 参数运行它。
  • 导航菜单中的永久链接?嗯?我复制了你的确切代码,它工作正常。
  • @TryingTobemyself Dang,我希望保持路线助手漂亮。

标签: laravel laravel-4


【解决方案1】:

这个

<a href="{{ route('topicDetails') }}">XXX</a>

应该是

<a href="{{ route('topicDetails', null) }}">XXX</a>

【讨论】:

  • 那么在控制器函数中传递它有什么意义呢?
  • @jakeharris &lt;a href="{{ route('topicDetails') }}"&gt;XXX&lt;/a&gt; 按原样为我工作,尝试更新你的 Laravel 版本
  • "null" 对我不起作用,但 &lt;a href="{{ route('my.route', '') }}"&gt;XXX&lt;/a&gt; 对我有用(Laravel 4.2.11)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-02
  • 2013-09-05
  • 2016-04-10
  • 2014-10-13
  • 2016-04-06
  • 2010-12-07
相关资源
最近更新 更多