以下是我构建的过滤器表单的开头部分。它工作正常,但我想做的是在我的视图中检索输入的值。因此,在此示例中,我想显示“您通过'用户输入的关键字'搜索”,并在关键字文本字段中显示此内容。添加选择列表时,这将是相同的原则。
如果用户希望更改过滤器设置,或者对结果进行分页,则始终会存储这些值。
我的问题是如何做到这一点。我很确定它可以在laravel中但只知道如何在PHP中执行此操作
表格
<div class="row">
{{ Form::open(array('url'=>'events/search', 'class'=>'form-search', 'role'=>'form')) }}
<div class="col-lg-6">
<div class="input-group">
{{ Form::text('search', '', array('class'=>'form-control', 'placeholder'=>'Search by keyword.'))}}
<span class="input-group-btn">
{{ Form::submit('Search', array('class'=>'btn btn-default'))}}
</span>
</div>
</div>
{{ Form::close() }}
</div>
搜索控制器
public function postSearch() {
$search = Input::get('search');
$events = DB::table('events')
->where(function($query) use ($search)
{
$query->where('title', 'LIKE', '%' . $search . '%')
->where('date','>=', DB::raw('CURDATE()'));
})
->orderBy('date', 'DESC')
->get();
$this->layout->content = View::make('events.results',
array(
'events' => $events
)
);
}
查看
@foreach($events as $event)
<div class="col-md-9">You search for ''</div>
{{-- filter form will again display here --}}
<h2>{{ HTML::link("events/$event->id/", "$event->title") }}</h2>
@endforeach
答案 0 :(得分:0)
控制器:
public function postSearch() {
$search = Input::get('search');
$events = DB::table('events')
->where(function($query) use ($search)
{
$query->where('title', 'LIKE', '%' . $search . '%')
->where('date','>=', DB::raw('CURDATE()'));
})
->orderBy('date', 'DESC')
->get();
$this->layout->content = View::make('events.results',
array(
'events' => $events,
'search' => $search <-------- pass the search parameter to view
)
);
}
查看:
@if(!empty($search))
<div class="col-md-9">You search for {{$search}}</div>
@endif
@foreach($events as $event)
{{-- filter form will again display here --}}
<h2>{{ HTML::link("events/$event->id/", "$event->title") }}</h2>
@endforeach
两个问题:
GET
而非POST
。 (更容易收藏,在其他地方提供链接)