我是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函数并只检查值?
答案 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。