将可选参数值从laravel路由传递到控制器

时间:2013-06-06 18:31:06

标签: parameters controller routes laravel optional

如何将laravel路由中的可选参数传递给控制器​​?我正在使用:

Route::get('test/{id?}', function($id = 5){});

但它不起作用......

更新:Laravel版本4

代码现在正在运行但我的Backbone.js脚本在我的视图中不起作用。它不会从服务器获取数据(返回错误)。

路线:

Route::get('test/{id?}', 'TestController@index', function ($id = 5) {});

控制器:

public function index()
{
    $pitanja = DB::select('select * from pitanja ORDER BY RAND() LIMIT 15');
    $znakovi = DB::select('select * from znakovi ORDER BY RAND() LIMIT 15');

    Cache::forever('pitanja', $pitanja);
    Cache::forever('znakovi', $znakovi);

    return View::make('test.index', compact('pitanja'), compact('znakovi'));
}

当我的网址为/test/4时,我的Backbone.js代码将无法从服务器获取(来自此功能):

public function pitanja()
{
    $pitanja =  Cache::get('pitanja');
    return $pitanja;
}

(Backbone.js控制器中的URL为url:'/testovi/pitanja'

1 个答案:

答案 0 :(得分:1)

抱歉,误读。

您需要检查路线的顺序。

Route::get('test/{a?}', function($a = '0') {
  echo $a;
});

对我来说很好。