简体   繁体   English

使用路由方法时,参数未传递到laravel中的控制器方法

[英]Parameter not being passed to controller method in laravel when using route method

I have the following code in my anchor tag in my laravel application: 我的laravel应用程序的anchor标签中包含以下代码:

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

My route is set to run the following method when clicked on the above link: 单击上面的链接时,我的路线设置为运行以下方法:

public function showQualityResult($qualityData) {
        return $qualityData;
        // return view('quality-result' , compact($qualityData));
    }

Now when i click on the link, i get the following error: 现在,当我单击链接时,出现以下错误:

在此处输入图片说明

Why am i getting a Missing argument 1 error when i clearly am passing data as a parameter in the tag like so below: 当我清楚地在标签中传递数据作为参数时,为什么会出现Missing argument 1错误,如下所示:

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

Why is the parameter not being passed to the method ? 为什么参数没有传递给方法?

Your route from your previous question: 您从上一个问题出发的路线:

Route::get('/showQualityResult', 'QualityCheckController@showQualityResult');

To pass the parameter, you should define it. 要传递参数,您应该定义它。 So, it'll look like this: 因此,它看起来像这样:

Route::get('showQualityResult/{data}', 'QualityCheckController@showQualityResult');

And showQualityResult() method should accept it: 并且showQualityResult()方法应该接受它:

public function showQualityResult($data)
{
    ....

I'd recommend you to read the docs to understand how it works. 我建议您阅读文档以了解其工作原理。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM