我正在尝试从action()辅助函数中调用我的一个控制器中的函数。我需要将一个参数传递给我的函数。
这是我试图打电话的功能:
df[duplicated(df$ID),]
以下是我称之为的方式:
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>
从我知道的一点点来看,这似乎对我来说是正确的,但由于它不起作用,我必须得到它不是的证据。用正确的参数调用我的函数最干净的方法是什么?
答案 0 :(得分:0)
我认为分配参数不需要在键值对中。我没有名字就开始工作了。
如果您的路线与/post/{param}
类似,则可以传递参数,如下所示。您的网址将替换为/post/100
URL::action('PostsController@show', ['100'])
对于多个参数,可以传递/post/{param1}/attachment/{param2}
参数,如下所示。同样,您的网址将替换为/post/100/attachment/10
URL::action('PostsController@show', ['100', '10'])
此处 show 是 PostsController
中的方法在PostsController中
public function show($param1 = false, $param2 = false)
{
$returnData = Post::where(['column1' => $param1, 'column2' => $param2 ])->get();
return View::make('posts.show', compact('returnData'));
}
在视图中
<a href="{{ action('PostsController@show', ['100', '10']) }}">Read More</a>
路线
Route::get('/post/{param1}/attachment/{param2}', [ 'as' => 'show', 'uses' => 'PostsController@show' ] );
网址应为:http://www.example.com/post/100/attachment/10
希望这有用。
答案 1 :(得分:0)
它不起作用的原因是因为查询字符串不作为参数传递给控制器方法。相反,您需要从请求中抓取它们,如下所示:
public function my_function(Request $request)
{
$songs = Song::orderBy($request->query('clef'))->get();
return View::make('my_view', compact('songs'));
}
额外花絮:因为Laravel使用魔术方法,你实际上只需执行$request->clef
就可以获取查询参数。