所以我正在使用 laravel 5.2 并且我正在构建一个搜索表单,有多个搜索查询和选项。
我一直在绞尽脑汁想办法保存用户搜索并在他们访问搜索页面时自动填写表单,甚至在他们访问时自动搜索。
到目前为止,我一直将 GET 设置为变量并自动填写文本字段,但这只持续它们在页面上的时间,这不是我想要的,
我考虑过将 gets 作为单独的字段保存到数据库中,当它们在页面上搜索和拉动它们并填写每个字段时,我该如何自动搜索?
或者我是否将其保存为 1 个字符串作为从 URL 中获取的字符串,例如 u=username&p=postcode 并设置路由以检查用户是否保存了搜索,如果他们访问/search,他们将被重定向到保存在数据库中的 url+get 选项。 (也不知道该怎么做。)
现在是最难的部分,即使有 gets 我也有多个字段,如性别和排序依据。你如何自动填写这些?
下面是我的表单代码
<?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() }}
最佳答案
有几种方法可以做到这一点。最好的方法是专用模型并将数据保存为 JSON 对象。
模型。您可以创建具有User has many Searches
关系的专用表。并将对象保存到该表中。
JSON。您可以 serialize object使用 ->toJson()
方法并保存在 users
表中。只需添加 json
类型 column :
$table->json('options');
在这两种情况下,您都直接使用对象。
关于php - Laravel (php) 保存搜索选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36215683/