Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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
Laravel(php)保存搜索选项_Php_Mysql_Laravel_Search_Save - Fatal编程技术网

Laravel(php)保存搜索选项

Laravel(php)保存搜索选项,php,mysql,laravel,search,save,Php,Mysql,Laravel,Search,Save,所以我使用的是Laravel5.2,我正在构建一个搜索表单,有多个搜索查询和选项 我一直绞尽脑汁想办法保存用户的搜索,并在用户访问搜索页面时自动填写表单,甚至在用户访问页面时自动搜索 到目前为止,我一直将GET设置为变量,并自动填充文本字段,但这只会持续到它们出现在页面上的时间,这不是我想要的 我曾经考虑过将get作为单独的字段保存到数据库中,当它们在页面上搜索并填充每个字段时,将它们拉入数据库中,但是如何自动搜索呢 还是将其保存为1个字符串作为从URL获取的字符串,例如,u=username&

所以我使用的是Laravel5.2,我正在构建一个搜索表单,有多个搜索查询和选项

我一直绞尽脑汁想办法保存用户的搜索,并在用户访问搜索页面时自动填写表单,甚至在用户访问页面时自动搜索

到目前为止,我一直将GET设置为变量,并自动填充文本字段,但这只会持续到它们出现在页面上的时间,这不是我想要的

我曾经考虑过将get作为单独的字段保存到数据库中,当它们在页面上搜索并填充每个字段时,将它们拉入数据库中,但是如何自动搜索呢

还是将其保存为1个字符串作为从URL获取的字符串,例如,u=username&p=postcode 并设置路由,以检查用户是否保存了搜索,如果他们访问/搜索,则会被重定向到数据库中保存的url+获取选项。(也不知道怎么做。)

现在最难的部分是,即使使用GET,我也有多个字段,如性别和排序。你是如何自动填写的

下面是我的表单代码

<?php 
if(isset($_GET['u'])) { $username   = $_GET['u']; } else { $username    = ''; }
if(isset($_GET['p'])) { $postcode   = $_GET['p']; } else { $postcode    = ''; }
if(isset($_GET['o'])) { $orderby    = $_GET['o']; } else { $orderby     = ''; } 
?>

{{ Form::open(['method' => 'GET']) }}
<div id="filter-panel" class="filter-panel collapse in">
    <div class="panel panel-default">
        <div class="panel-body">

            <form class="form-inline" role="form">
                <div class="row">
                    <div class="col-xs-6 col-sm-2">

                        {{ Form::input('search', 'u', $username, ['class' => 'form-control input-sm', 'placeholder' => 'username...']) }}
                    </div><!-- form group [search] -->

                    <div class="col-xs-6 col-sm-2">

                        {{ Form::input('search', 'p', $postcode, ['class' => 'form-control input-sm', 'placeholder' => 'postcode...']) }}
                    </div><!-- form group [search] -->
                    <div class="col-xs-6 col-sm-3">

                    <select id="attractedToGender" multiple="multiple" name="g[]" class="input-sm" >
                        <option value="1">Females</option>
                        <option value="2">Males</option>
                        <option value="3">Others</option>
                    </select>
                    </div><!--END form-group col-xs-6 col-sm-4-->
                    <div class="col-xs-12 col-sm-3">
                        <select id="pref-orderby" class="input-sm" name="o[]"  multiple="multiple">
                            <option value="1">Photo Only</option>
                            <option value="2">User Type</option>
                            <option value="3">Last Online</option>
                        </select>                                
                    </div> <!-- form group [order by] --> 
                    <div class="col-xs-6 col-sm-2 pull-right text-right">
                        {{Form::button('<i class="glyphicon glyphicon-search"></i> Search', array('type' => 'submit', 'class' => 'btn btn-primary btn-sm', 'style' => 'margin:0;'))}}
                    </div><!--END form-group col-xs-6-->


                </div>
            </form>
        </div>
    </div>
</div>    
{{ Form::close() }}

{{Form::open(['method'=>'GET'])}
{{Form::input('search','u',$username,['class'=>'Form control input sm','placeholder'=>'username…'))}
{{Form::input('search','p',$postcode,['class'=>'表单控制输入sm','placeholder'=>'postcode…'))}
女性
男性
其他
仅照片
用户类型
最后在线
{Form::button('Search',array('type'=>'submit','class'=>'btn-btn-primary-btn-sm','style'=>'margin:0;'))}
{{Form::close()}}

实现这一点的方法很少。最好的方法是专用模型和将数据保存为JSON对象

模型。您可以使用
用户有多个搜索关系创建专用表。然后将对象保存到此表中

JSON。您可以使用
->toJson()
方法,并将其保存在
用户
表中。只需添加
json
类型:


在这两种情况下,您都直接使用对象。

很少有方法可以做到这一点。最好的方法是专用模型和将数据保存为JSON对象

模型。您可以使用
用户有多个搜索关系创建专用表。然后将对象保存到此表中

JSON。您可以使用
->toJson()
方法,并将其保存在
用户
表中。只需添加
json
类型:


在这两种情况下,您都直接处理对象。

啊,您知道我会查找什么类型的对象吗?我是php新手,对你所指的东西有点迷茫to@Unifx,在获取参数时,可能会创建一个
对象
。JSON方式:要将对象保存到DB,您可以
序列化它
并另存为
JSON对象
。然后,您可以为这个json对象查询DB,
unserialize
it并像往常一样使用这个对象。您需要在PHP和Laravel文档中了解更多关于它的信息。感谢您提供的信息,现在变得更有意义了。:)啊,你知道我会找什么样的东西吗?我是php新手,对你所指的东西有点迷茫to@Unifx,在获取参数时,可能会创建一个
对象
。JSON方式:要将对象保存到DB,您可以
序列化它
并另存为
JSON对象
。然后,您可以为这个json对象查询DB,
unserialize
it并像往常一样使用这个对象。您需要在PHP和Laravel文档中了解更多关于它的信息。感谢您提供的信息,现在变得更有意义了。:)您是否希望用户能够将url发送给其他人,并让他们看到相同的搜索结果?如果是这样,那么使用get变量并将它们存储在url查询字符串中将是最好的选择。如果没有,将变量存储在会话或cookie中如何?是否希望用户能够将url发送给其他人,并让他们看到相同的搜索结果?如果是这样,那么使用get变量并将它们存储在url查询字符串中将是最好的选择。如果没有,将变量存储在会话或cookie中如何?
$table->json('options');