laravel传递可选的表单值

时间:2013-09-06 21:00:04

标签: php laravel laravel-4

我是laravel的新手并试图弄清楚如何执行以下操作:

我有一条看起来像这样的路线:

Route::resource('users', 'UsersController');

它使用如下查询:

public function show()
{
    $users = DB::select('select * from users WHERE Active = "Y"');
    return View::make('users.show')->with('users', $users);
}

它表现得很好。但是在视图的结果之上,我有一个允许某人通过说出名字或姓氏进行搜索的表单。我无法弄清楚如何在laravel中做到这一点。我不确定我是否需要一个不同的函数来预期那些可选的搜索参数,或者我是否可以使用show函数并只检查值?

1 个答案:

答案 0 :(得分:0)

出于安全原因,Laravel会删除所有GET查询参数(/user?name=John),因此您必须使用POST或将其作为路由参数传递(/user/John)。

使用POST,您可以访问Input。您将能够提供如下默认值:

Route::post('user', function()
{
    return Input::get('name', 'John');
});

对于route parameters,您可以像这样定义可选参数:

Route::get('user/{name?}', function($name = 'John')
{
    return $name;
});

您将无法使用资源控制器,因为它们不允许您定义自定义端点,只允许您定义基本GET/POST by ID ones

我知道你不喜欢在路线定义中定义路线处理程序。 那是RESTful controllers