带有可选url $ param(s)的命名路由 - Laravel 4

时间:2013-08-03 04:04:44

标签: laravel laravel-4

我遇到了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不太熟悉,弄清楚它为什么不起作用,而且我已经筋疲力尽了我所有的资源。

非常感谢任何线索谢谢!

1 个答案:

答案 0 :(得分:11)

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

应该是

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