CakePHP:显示其他字段而不是id

时间:2014-07-16 19:07:47

标签: php cakephp

我正在为网络角色扮演游戏管理工作。它现在非常简单。 我有3张桌子:

(1) Game
    *  id
    *  title
    *  user_id (game master)

(2) Sheet
    * id
    * name
    * game_id
    * user_id

(3) Users
    * id
    * username

好吧,我有两个问题:

1 - 在工作表视图中,我无法显示游戏的小小或用户名,只是他的ID' s 2 - 在游戏视图中,我无法显示用户名(游戏大师)。

我在这里尝试了很多类似问题的答案,但没有任何效果。我有点沮丧:(请帮忙。

这里我的代码详细信息:

模型:

/*User Model*/    
class User extends AppModel {

    public $name = 'User';
    public $hasMany = array(
      'Sheet' => array(
          'className' => 'Sheet',
          'foreignKey' => 'user_id'
      ),
      'Game' => array(
          'className' => 'Game',
          'foreignKey' => 'user_id'
      )
    );
}
/*Game Model*/
class Game extends AppModel {

    public $name = 'Game';
    public $belongsTo = array(
      'Master' => array(
          'className' => 'User',
          'foreignKey' => 'user_id'
      )
    );

    public $hasMany = array (
      'Chars' => array (
          'className' => 'Sheet',
          'foreignKey' => 'game_id' 
      )
    );
}
/*Sheet Model*/
class Sheet extends AppModel {

    public $name = 'Sheet';
    public $belongsTo = array (
      'Party' => array (
          'className' => 'Game',
          'foreignKey' => 'game_id' 
      ),
      'Player' => array (
        'className' => 'User',
        'foreignKey' => 'user_id'   
      )
    );
}

控制器:

/*SheetController*/
 class SheetController extends AppController {
     public $helpers = array('Html', 'Form');

    var $name = 'Sheets';
 public function view($id = null) {
    $this->Sheet->id = $id;
    $this->Sheet->recursive = 2;
    if (!$this->Ficha->exists()) {
        throw new NotFoundException(__('La ficha no existe'));
    }
    $this->set('sheet', $this->Sheet->read(null, $id));
}
}
class PartidasController extends AppController {
     public $helpers = array('Html', 'Form');

     var $name = 'Partidas';
public function view($id) {
    if (!$id) {
        throw new NotFoundException(__('Invalid post'));
    }

    $this->Partida->recursive=2;
    $partida = $this->Partida->findById($id);
    if (!$partida) {
        throw new NotFoundException(__('Invalid post'));
    }
    $this->set('partida', $partida);
}
}

视图:

/*Game View*/
<?php echo $game['Game']['title']; ?>
<strong>Master: </strong>
                <?php
                echo $this->Html->link($game['Game']['user_id'], array('controller' => 'Users','action' => 'view',$game['Game']['user_id'])); ?>
/*Sheet View*/
<?php echo $this->Html->link($sheet['Sheet']['nombreFicha'],array('controller' => 'sheets', 'action' => 'view', $sheet['Sheet']['id']));?>
            <?php echo $this->Html->link($sheet['Sheet']['user_id'],array('controller' => 'users', 'action' => 'view', $sheet['Sheet']['user_id'])); ?>
            <?php echo $this->Html->link($sheet['Sheet']['game_id'],array('controller' => 'games', 'action' => 'view', $sheet['Sheet']['game_id'])); ?>

0 个答案:

没有答案