我的观点是这样的:
...
<a class="btn btn-primary pull-right" style="margin-top: -10px;margin-bottom: 5px" href="{!! route('users.create.year', [$year]) !!}">
Add New
</a>
...
...
@foreach($testArray as $key)
...
<a class="btn btn-primary btn-xs" href="{!! route('users.create.year', [$key['display'], $year]) !!}">
<i class="glyphicon glyphicon-plus"></i>
</a>
...
@endforeach
...
我的路线是这样的:
Route::get('users/create/{year}/{display?}', 'UserController@create')
->name('users.create.year');
我的控制器是这样的:
public function create($year, $display = null)
{
echo $display.' : display <br>';
echo $param_thang. ' : year';die();
...
}
当我这样调用url:http://localhost/mysystem/public/users/create/2016
时,它可以工作。
结果是这样的:
: display
2016 : year
当我这样调用网址时:http://localhost/mysystem/public/users/create/14144499452111901/2016
结果是这样的:
2016 : display
14144499452111901 : year
看起来很奇怪,结果是颠倒的
为什么会这样?
答案 0 :(得分:3)
这是因为您的路线是:
Route::get('users/create/{year}/{display?}', 'UserController@create')
->name('users.create.year');
因此,第一个参数始终是年份,第二个参数始终是显示变量。
答案 1 :(得分:1)
您需要将<a>
更改为@farkie建议:
<a class="btn btn-primary btn-xs" href="{!! route('users.create.year', [$year,$key['display']]) !!}">
<i class="glyphicon glyphicon-plus"></i>
</a>