Laravel(php)保存搜索选项
所以我使用的是Laravel5.2,我正在构建一个搜索表单,有多个搜索查询和选项 我一直绞尽脑汁想办法保存用户的搜索,并在用户访问搜索页面时自动填写表单,甚至在用户访问页面时自动搜索 到目前为止,我一直将GET设置为变量,并自动填充文本字段,但这只会持续到它们出现在页面上的时间,这不是我想要的 我曾经考虑过将get作为单独的字段保存到数据库中,当它们在页面上搜索并填充每个字段时,将它们拉入数据库中,但是如何自动搜索呢 还是将其保存为1个字符串作为从URL获取的字符串,例如,u=username&p=postcode 并设置路由,以检查用户是否保存了搜索,如果他们访问/搜索,则会被重定向到数据库中保存的url+获取选项。(也不知道怎么做。) 现在最难的部分是,即使使用GET,我也有多个字段,如性别和排序。你是如何自动填写的 下面是我的表单代码Laravel(php)保存搜索选项,php,mysql,laravel,search,save,Php,Mysql,Laravel,Search,Save,所以我使用的是Laravel5.2,我正在构建一个搜索表单,有多个搜索查询和选项 我一直绞尽脑汁想办法保存用户的搜索,并在用户访问搜索页面时自动填写表单,甚至在用户访问页面时自动搜索 到目前为止,我一直将GET设置为变量,并自动填充文本字段,但这只会持续到它们出现在页面上的时间,这不是我想要的 我曾经考虑过将get作为单独的字段保存到数据库中,当它们在页面上搜索并填充每个字段时,将它们拉入数据库中,但是如何自动搜索呢 还是将其保存为1个字符串作为从URL获取的字符串,例如,u=username&
<?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');