Передача значения необязательного параметра из маршрута laravel в контроллер

Как передать необязательный параметр из маршрута 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'));
}

Когда мой URL-адрес /test/4, мой код Backbone.js не будет загружаться с сервера (из этой функции):

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

(URL-адрес в контроллере Backbone.js - url:'/testovi/pitanja')


person Sysrq147    schedule 06.06.2013    source источник


Ответы (1)


Извините, неправильно прочитал.

Вам нужно проверить порядок ваших маршрутов.

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

у меня отлично работает.

person Rob W    schedule 06.06.2013
comment
Я хочу, чтобы это был необязательный параметр маршрута, как в документации laravel 4: laravel.com/docs/routing It работает, когда я делаю это, как в предыдущем посте, но мой код backbone.js не работает (он не может получать данные с сервера). - person Sysrq147; 06.06.2013
comment
Обновленный ответ, извините, неправильно прочитал ваш вопрос. Проверьте порядок ваших маршрутов. Попробуйте разместить это в ТОПе вашего routes.php. - person Rob W; 06.06.2013