我的路线:
Route::get('/app/search', ['as' => 'search', 'uses' => 'AppController@getSearch']);
我的控制器:
public function getSearch()
{
$searchTerm = Input::get('s');
$locs = Loc::whereRaw('match(title, description) against(? in boolean mode)', [$searchTerm])
->paginate(10);
$locs->getFactory()->setViewName('pagination::slider');
$locs->appends(['s' => $searchTerm]);
$this->layout->with('title', 'Search: ' . $searchTerm);
$this->layout->main = View::make('home')
->nest('content', 'index', ($locs->isEmpty()) ? ['notFound' => true] : compact('locs'));
}
我得到的网址是:“www.example.com/app/search?s=search+term”
我想:“www.example.com/app/search?s=search+term#result”直接转到结果元素。
我尝试在控制器和视图中都使用$locs->fragment('result')->links();
,但没有任何改变。
人们要求提供更多信息,比如显示网址的生成位置,但问题是我不知道。 Route,Controller和View似乎都不对此负责。
这有点奇怪,我无法理解网址是如何生成的,我想:
$locs->appends(['s' => $searchTerm]);
负责,但即使我删除该行,网址也没有任何变化。 所以我真的坚持这一点,laravel文档没有帮助,我无法在网上找到文档或帮助。
答案 0 :(得分:1)
答案 1 :(得分:0)
我使用jquery创建了解决方法:
@if($orders->hasPages())
<div class="section">
<div class="section__content hash-pagination" data-hash="promo-orders">
{!! $orders->appends(request()->all()) !!}
</div>
</div>
@endif
<script>
$(document).ready(function () {
$('.hash-pagination').each(function(element){
var hash = $(this).data('hash');
var links = $(this).find('a');
links.each(function(link){
var href = $(this).attr('href');
$(this).attr('href', href + '#' + hash);
});
});
});
</script>