Laravel的新手,
我的表单看起来像这样
{!! Form::open(array('action' => array('SearchController@postReviews' ), 'class'=>'form-inline')) !!}
<div class="form-group">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="input-group">
<div class="input-group-addon" style="width:110px;">Location</div>
<input type="text"
class="form-control "
id="mapsearch" name="mapsearch"
placeholder="Enter City,Pin or Address"
style="height:43px; min-width:402px; font-size:1.0em;" required/>
<div class="input-group-addon">
{!! Form::select('size',
array('Car' => 'Car', '2-Wheeler' => '2-Wheeler'),
'Car',
['id'=> 'carmodel', 'class' => 'form-control input-sm', 'style'=>'width:200px;',
'required'])
!!}
</div>
<input type="hidden" class="form-control input-sm" name="input_lat" id="input_lat" required>
<input type="hidden" class="form-control input-sm" name="input_lng" id="input_lng" required>
</div>
<button type="submit" class="btn btn-danger" id="btn_search" style="width:200px;height:42px;">Search</button>
</div>
</form>
我的控制器看起来像
public function postReviews()
{
$location = Input::get('mapsearch');
$input_lat = Input::get('input_lat');
$input_lng = Input::get('input_lng');
$inputs = ($input_lat && $input_lng);
if (!$inputs) {
$input_lat = 22.5667;
$input_lng = 88.3667;
}...
现在一切正常。我能够毫无问题地生成结果。
令我感到不安的是,当我点击搜索时,我的网址仍然保持不变。
即。在搜索网址为http://localhost/reviews
之前
搜索网址为http://localhost/reviews
后
我应该更改什么,以便我的网址在搜索按钮点击后显示
http://localhost/reviews/(value from mapsearch field)
答案 0 :(得分:0)
当你使用POST请求时,输入值是通过post发送的,不会附加到URL(而不是get请求,它们会被发送到localhost / reviews?mapsearch = xxxx&amp; input_lat = XXXXX&安培; input_lng = XXXXX)。要将该细分添加到网址,您必须执行以下两项操作之一:
1)在Controller中,处理输入,然后将它们重定向到映射到/ reviews / {mapsearch}
的路由或
2)在页面上使用一些javascript来更新URL以显示mapsearch参数。为了更新他们看到的URL而不将其发送到新页面,您需要使用history.pushState。所以在你看来你会有
<script>
history.pushState({},"URL Rewrite Example","http://localhost/reviews/{{Input::get('mapsearch')}}")
</script>
这将更新其URL以显示该参数。并非所有浏览器都支持此功能,尤其是IE&lt; 10
答案 1 :(得分:0)
首先创建一个控制器动作
SELECT egr.*, carEgr.*, dirEgr.*, egrEmp.*, emp.*, boss.*, asoci.*, snip.*, pro.*
FROM egr
JOIN carEgr
ON carEgr.egr_name = egr.name
JOIN dirEgr
ON dirEgr.egr_name = egr.name
JOIN egrEmp
ON egrEmp.egr_name = egresado.name
JOIN emp
ON emp.idEmp = egrEmp.emp_idEmp
JOIN boss
ON boss.emp_idEmp = emp.idEmp
JOIN asosi
ON asoci.egr_name = egr.name
JOIN snip
ON snip.egr_name = egr.
JOIN pro
ON pro.egr_name = egr.name
然后更改postReview返回以重定向到此操作。
public function reviewWithUri($uri,$data){
return view('YOUR_VIEW_FILE')->with(['data'->$data]);
}
最后路由
public function postReview(){
........
return redirect()->action('ReviewController@reviewWithUri', ['uri' =>$uri,'data'=>$data]);
}