laravel控制器功能参数

时间:2015-11-04 02:33:02

标签: php laravel laravel-4

我正在尝试从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>

从我知道的一点点来看,这似乎对我来说是正确的,但由于它不起作用,我必须得到它不是的证据。用正确的参数调用我的函数最干净的方法是什么?

2 个答案:

答案 0 :(得分:0)

Laravel网址参数

我认为分配参数不需要在键值对中。我没有名字就开始工作了。

如果您的路线与/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就可以获取查询参数。