当我向同一个函数发送不同的参数时,为什么结果看起来很奇怪? (laravel 5.3)

时间:2017-01-05 20:14:20

标签: php laravel laravel-5.3

我的观点是这样的:

...
<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

看起来很奇怪,结果是颠倒的

为什么会这样?

2 个答案:

答案 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>