Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法从Laravel中的get请求中检索正确的参数值_Php_Laravel - Fatal编程技术网

Php 无法从Laravel中的get请求中检索正确的参数值

Php 无法从Laravel中的get请求中检索正确的参数值,php,laravel,Php,Laravel,我遇到的问题是,如果我在get请求中传递一个可选参数的值,我将得到与没有传递值时相同的结果 路线: Route::get('/play/game/{new?}', [ 'uses' => 'GameController@getGame', 'as' => 'game' ]); public function getGame($new = null) { $quotes = Quote::orderBy('created_at',

我遇到的问题是,如果我在get请求中传递一个可选参数的值,我将得到与没有传递值时相同的结果

路线

   Route::get('/play/game/{new?}', [
        'uses' => 'GameController@getGame',
        'as' => 'game'
    ]);
public function getGame($new = null) {
    $quotes = Quote::orderBy('created_at', 'dec')->paginate(50);       

    if(!is_null($new)) {
        if ($new == 'yes')
            $newgame = true;
    } else {
         $newgame = false;
    }

    return view('game', ['quotes' => $quotes, 'newgame' => $newgame]);      
}
@if($newgame ==true) 
 {{Session::flush()}}
@endif

@if($newgame == false)
<h1>Not a new game</h1>
@endif
控制器

   Route::get('/play/game/{new?}', [
        'uses' => 'GameController@getGame',
        'as' => 'game'
    ]);
public function getGame($new = null) {
    $quotes = Quote::orderBy('created_at', 'dec')->paginate(50);       

    if(!is_null($new)) {
        if ($new == 'yes')
            $newgame = true;
    } else {
         $newgame = false;
    }

    return view('game', ['quotes' => $quotes, 'newgame' => $newgame]);      
}
@if($newgame ==true) 
 {{Session::flush()}}
@endif

@if($newgame == false)
<h1>Not a new game</h1>
@endif
查看

   Route::get('/play/game/{new?}', [
        'uses' => 'GameController@getGame',
        'as' => 'game'
    ]);
public function getGame($new = null) {
    $quotes = Quote::orderBy('created_at', 'dec')->paginate(50);       

    if(!is_null($new)) {
        if ($new == 'yes')
            $newgame = true;
    } else {
         $newgame = false;
    }

    return view('game', ['quotes' => $quotes, 'newgame' => $newgame]);      
}
@if($newgame ==true) 
 {{Session::flush()}}
@endif

@if($newgame == false)
<h1>Not a new game</h1>
@endif
@if($newgame==true)
{{Session::flush()}}
@恩迪夫
@如果($newgame==false)
不是新游戏
@恩迪夫
视图中的第二条if语句只是一个测试,总是执行这个语句。 作为参考,我使用的是Laravel5.2,试试这个 我认为没有必要在参数中添加“?”符号

Route::get('play/game/{new}', [
        'uses' => 'GameController@getGame',
        'as' => 'game'
    ]);

您可以按如下方式注册路线:

Route::get('play/game/', [
        'uses' => 'GameController@getGame',
        'as' => 'game'
    ]);
然后在调用
url
时,按如下方式传递变量:

play/game/?new=yes

然后在控制器中,您可以检查变量是否已设置:

if($request->input('new')=='yes'
要检查参数是否存在,请执行以下操作:

$request->has('new')

事实上,是什么?符号表示一个可选参数,所以在没有传递值的情况下,Laravel不会发疯并抛出错误。你可以在这里读到:哦,对不起。连我都不知道这件事。