我试图从action()辅助函数调用我的控制器中的一个函数。我需要传递一个参数给我的函数。
下面是我尝试调用的函数:
public function my_function($clef = 'title')
{
$songs = Song::orderBy($clef)->get();
return View::make('my_view', compact('songs'));
}
我是这样称呼它的:
<a href="{{ action('MyController@My_View', ['clef' => 'author']) }}">Author</a>
函数总是以默认值运行,即使我在调用中加入了其他内容,从地址栏中可以看到,参数似乎是随调用沿着发送的:
http://www.example.com/my_view?clef=author
就我所知,它似乎是正确的,但既然它不起作用,我必须找到它不起作用的证据。用正确的参数调用函数的最简洁的方法是什么?
2条答案
按热度按时间pftdvrlh1#
它不起作用的原因是查询字符串不是作为参数传递给控制器方法的,而是需要像这样从请求中获取它们:
额外花絮:因为Laravel使用魔术方法,所以实际上只需执行
$request->clef
就可以获取查询参数。piztneat2#
Laravel URL参数
我认为赋值参数不需要在键值对中。我让它在没有名字的情况下工作。
如果您的路由类似
/post/{param}
,您可以如下所示传递参数。您的URL将替换为/post/100
对于多个参数,比如
/post/{param1}/attachment/{param2}
参数可以如下所示传递。同样,您的url将被替换为/post/100/attachment/10
这里的***show***是***PostsController***中的一个方法
在邮件控制器中
在视图中
在路线中
URL应为:
http://www.example.com/post/100/attachment/10
希望这是有帮助的。