【发布时间】:2014-04-13 00:54:21
【问题描述】:
目前正在集成jquery pjax,会尽力解释。我让它在第一个视图中工作,但是当直接从地址栏访问 URL 地址时,我得到的视图没有 @extends('layout.main')。
这是我的设置:
路由,一个路由用于retailers.index 视图,另一个用于我的GET 参数和retailers.stores 视图。
Route::get('retailers', array(
'as' => 'retailers',
'uses' => 'SiteController@retailers'));
Route::get('retailers/{city}', array(
'as' => 'find-retailers',
'uses' => 'SiteController@getRetailers'));
控制器:
public function retailers() {
$listings = DB::table('retailers_listings')
->orderBy('counter', 'desc')
->groupBy('country')
->get();
return View::make('retailers.index')
->with('retailers_listings', $listings)
}
public function getRetailers($city) {
$locations = DB::table('retailers_listings')
->orderBy('country', 'asc')
->Where('city', $city)
->get();
return View::make('retailers.stores')
->with('retailers_listings', $locations);
}
href 与 pjax 和 URL 路由到 retailers.stores 视图 - 使用 find-retailers
<a data-pjax href="{{ URL::route('find-retailers', array('city' => $string)) }}">
{{ $string }}
</a>
内联 JS
$(document).pjax('[data-pjax] a, a[data-pjax]', '#pjax-container')
如果我正在加载 /retailers(索引),一切正常,如果我按下链接,它将在 <div id="pjax-container"></div> 中加载 store.retailers 视图,并且 URL 将更改为零售商/{country}。如果我直接从 URL 地址栏加载,它只会加载没有 @extends('layout.main') 的视图,因为我不会在我的 retailers.stores 视图中调用它,因为我在 pjax 中加载了 Retailers.stores。
基本上可以,但是直接加载地址栏时就不行了。
【问题讨论】: