Laravel参数没有明确指定

时间:2016-09-29 21:39:51

标签: laravel-5

我想生成没有$ name的页面网址,类似这样的

  

mysite.app/statestring

但是路线get('/action/{name}', ...)我只能得到这个

  

mysite.app/statestring/ somename

如果我将路线更改为Route::get('/action', ...)它不起作用,则错误为"缺少参数1"

我的web.php

Route::get('/action/{name}', [
   'uses' => 'DoActionController@getAction',
   'as' => 'returnAction',
]);

我的控制器操作

public function ($name)
{
    return view('returnaction', ['name'=>$name]);
}

我的主页

<body>
@foreach ($yourActions as $yourAction)
    <li> 
        <a href="{{ route('returnAction', ['name'=>$yourAction->name]) }}"> {{ $yourAction->name }} </a> 
    </li>
@endforeach 

1 个答案:

答案 0 :(得分:0)

您需要将 $ name 参数设为可选。

首先,在控制器中将其声明为可选:

public function ($name = null)

这将消除你得到的错误参数的错误。接下来,在路线中使用

选择名称参数
Route::get('/action/{name?}', ...);