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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/16969539/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 07:54:49  来源:igfitidea点击:

Passing optional parameter value from laravel route to controller

parameterscontrollerrouteslaraveloptional

提问by Sysrq147

How can I pass optional parameter from laravel route to controller? I am using:

如何将可选参数从 laravel 路由传递到控制器?我在用:

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

But it is not working...

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

Update: Laravel version 4

更新:Laravel 版本 4

Code is working now but my Backbone.js script which is in my view don't work. It will not fetch data from server (returning error).

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

Route:

路线:

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

Controller:

控制器:

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'));
}

When my URL is /test/4my Backbone.js code won't fetch from server (from this function) :

当我的 URL 是/test/4我的 Backbone.js 代码不会从服务器(从这个函数)获取:

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

(URL in Backbone.js controller is url:'/testovi/pitanja')

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

回答by Half Crazed

Sorry, misread.

对不起,看错了。

You need to check the order of your routes.

您需要检查路线的顺序。

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

works fine for me.

对我来说很好用。