Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel:如何向URL查询字符串追加附加项_Php_Laravel 4 - Fatal编程技术网

Php Laravel:如何向URL查询字符串追加附加项

Php Laravel:如何向URL查询字符串追加附加项,php,laravel-4,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['s

我有一个表单,它包含两个字段

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'].'%');
        }
我想允许我的用户添加额外的郊区或州,这样他们可以得到更多的结果,例如

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

我不知道如何设置我的表单以将“或”附加到附加值,以及如何设置我的控制器以查找附加值?

您不需要向控制器添加任何额外内容来添加
查询字符串
,只需在表单
操作
中添加
查询字符串
,例如:

Form::open(array('url' => 'search/?suburb=Manhatten/Brooklyn/Queens&state=NY', 'method' => 'post'))
然后在控制器方法中:

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 .'%');
        }
    }
}

你必须做一些习惯性的事情。例如,用户必须说
,然后您可以使用
分解('OR',$input['state'))
(然后循环遍历单词并创建一个长查询)。