Php 无法从Laravel中的get请求中检索正确的参数值
我遇到的问题是,如果我在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',
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不会发疯并抛出错误。你可以在这里读到:哦,对不起。连我都不知道这件事。