当我实际传递数组时,为什么我在laravel方法中获取String

时间:2016-12-18 09:02:08

标签: php laravel laravel-5

我在laravel ::

的视图文件中有以下代码行
<a href="{{ route('showQualityResult' , ['data' => Session::get('quality-data')]) }}">Submited Quality Check</a>

我的路线文件中设置了以下路线:

Route::get('showQualityResult/{data}', [
    'as' => 'showQualityResult', 
    'uses' => 'QualityCheckController@showQualityResult'
]);

单击标签时,将运行folling controller emthod:

public function showQualityResult($qualityData) {
        return $qualityData;
}

截至目前,我在视图中收到以下字符串:

45

为什么我得到这个字符串/数字?当我明确地在路由方法中传递一个数组时使用如下:

<a href="{{ route('showQualityResult' , ['data' => Session::get('quality-data')]) }}">Submited Quality Check</a>

有人可以详细说明并向我解释,因为我现在对我的结果感到有些惊讶。

1 个答案:

答案 0 :(得分:1)

route()方法的第二个参数需要一组参数发送到路由。它遍历您传入的数组,并使用数组中指定的值替换路由参数。

因此,在这种情况下,您已指定有一个名为data的参数,其值为Session::get('quality-data')(我假设为45) ,所以它需要您的路线定义showQualityResult/{data}并创建showQualityResult/45的实际路线。