在我的索引(/ players)视图中,我有一个带有一堆玩家图像的旋转木马。当我点击图像时,我会进入点击播放器的视图屏幕(/ players / view / 1)。
现在我想只有一个带有播放器图像旋转木马的索引屏幕,点击图像后我想在同一个索引屏幕上显示该播放器的信息。
我如何最好地组合索引和视图,以便我可以点击播放器图像并在同一页面上检索他的信息?目标是在控制器中有一个视图文件和一个操作。那么我怎样才能在一个动作中找到(' all')并找到(' first')?
现在我有/球员和/球员/观看/ 1。 我希望有例如/ players / 1,所以它加载在同一页面上。但是,我认为这仍然会给页面加载。
最终我不想加载页面,但只想更改内容。
PlayersController的索引动作(给我所有玩家):
public function index() {
$this->layout = 'default_front_players';
$this->Player->recursive = 0;
//$this->Player->find('all');
$this->set('players', $this->Paginator->paginate());
}
查看PlayersController的动作(给我点击的玩家):
public function view($id = null) {
$this->layout = 'default_front_players';
if (!$this->Player->exists($id)) {
throw new NotFoundException(__('Invalid player'));
}
$options = array('conditions' => array('Player.' . $this->Player->primaryKey => $id));
$this->set('player', $this->Player->find('first', $options));
}
更新
第一个案例
这给了我所有玩家并且还给了我一个玩家(atm玩家143,数据库中的最后一个玩家),问题是当我点击玩家图像时玩家留在玩家143.网址改变为玩家/ index / {点击播放器的数量}
public function index($id = null) {
$this->layout = 'default_front_players';
$this->Player->recursive = 0;
$players = $this->Player->find('all');
$this->set(compact('players'));
$options = array('conditions' => array('Player.' . $this->Player->primaryKey => $id));
$player = $this->set('player', $this->Player->find('first', $options));
}
第二种情况
这并没有向我显示播放器图片,但是当我更改网址时,它会向我提供我在网址中提供的ID的播放器内容。
public function index($id = null) {
$this->layout = 'default_front_players';
$this->Player->recursive = 0;
//$players = $this->Player->find('all');
//$this->Paginator->settings = $this->paginator_players;
$this->set('players');
$options = array('conditions' => array('Player.' . $this->Player->primaryKey => $id));
$player = $this->set('player', $this->Player->find('first', $options));
}
如果我去/球员或球员/指数我不会得到任何价值。
我如何结合这两个?
答案 0 :(得分:0)
您是否尝试过ajax和路由来实现内容刷新(基本上是创建自己的内部资源api调用)?我将cakephp用于我自己的项目,需要一种绕过整个控制器的方法,查看加载机制以获得更快的UI体验。
要点是在模板或布局文件中包含jquery。当调用某个路由或URL时(这需要在app / config中的routes.php文件中相对于您的apps根文件夹设置路由),触发ajax调用以获取内容并动态更新dom而不必重新加载页面。
这个建议可能会为你开辟一整套新的蠕虫,但我认为这是可以实现的。