Laravel:如何将附加项添加到URL查询字符串

时间:2014-04-09 01:22:25

标签: php laravel-4

我有一个带两个字段的表单

SUBURB and STATE

并将字段提交到URL,例如。

www.mysite.com/?suburb=Manhatten&state=NY

在我的Laravel控制器中我有

 if (isset($input['state']) && $input['state'] != '')
        {
            $query = $query->where('state', 'like', '%'. $input['state'].'%');
        }
 if (isset($input['suburb']) && $input['suburb'] != '')
        {
            $query = $query->where('suburb', 'like', '%'. $input['suburb'].'%');
        }

我想允许我的用户添加额外的SUBURBS或STATES,以便他们可以获得更多结果,例如。

www.mysite.com/?suburb= Manhatten OR Brooklyn OR Queens &state= NY OR NJ

我不知道如何设置我的表单以附加“或”或“'到其他郊区,如何设置我的控制器以寻找其他值?

1 个答案:

答案 0 :(得分:1)

您无需向控制器添加任何额外内容以添加query string,只需在query stqing格式中添加action,例如:

Form::open(array('url' => 'search/?suburb=Manhatten/Brooklyn/Queens&state=NY', 'method' => 'post'))

然后在你的Controller方法中:

if ($state = Input::get('state')) {
    $query = $query->where('state', 'like', '%'. $state .'%');
}

if ($suburb = Input::get('suburb')) {
    $suburbs = explode('/', $suburb);
    $query = $query->where('suburb', 'like', '%'. array_shift($suburbs) .'%');
    if(count($suburbs)) {
        foreach($suburbs as $sub) {
            $query = $query->orWhere('suburb', 'like', '%'. $sub .'%');
        }
    }
}