У меня проблема с CakePHP, отображающая имя вместо внешнего ключа таблицы.CakePHP показать другой атрибут, чем ID
Настройки: 3 Таблицы: Игроки, команды, Игры
В 3 Модели
Команды:
public $hasMany = 'Player';
Игроки:
public $belongsTo = 'Team';
Игры:
public $belongsTo = array( 'HTeam' => array( 'className' => 'Team', 'foreignKey' => 'hteam' ), 'ATeam' => array( 'className' => 'Team', 'foreignKey' => 'ateam' )
Я думаю, что все отлично с моделью, потому что идентификаторы отображаются правильно, и я могу добавить, удалить et c. Так что все работает нормально. Единственное, что не работает, - это показать имя, если команда вместо идентификатора команды. В таблице игроков есть командный_ид как внешний ключ. Когда я хочу перечислить всех игроков, тогда появляется только team_id, а не имя со ссылкой на команду. Я пробовал много вещей, но я не был успешным. У меня такая же проблема, когда я перечисляю все игры.
Я попытался установить $displayField = 'name'
в Team Teams, но я не знаю, как назвать это имя в представлении, которое контролируется Usercontroller.
PlayersController:
$this->set('players', $this->Player->find('all')); $teams = $this->Team->find('list', array('fields' => array('name'))); $this->set('teams', $teams);
также попытался это одно: $teams = $this->Player->Team->find('list', array('fields' => array('name')));
Это код, с помощью которого я попытался показать имя:
<?php echo $this->Html->link($teams['Team']['name'], array('controller' => 'teams', 'action' => 'view', $teams['Team']['id'])); ?>
Но это не работает, потому что У меня нет team_id. Я думаю, что на этот вопрос был дан ответ раньше, но либо я немой, чтобы найти его, либо неумно его реализовать правильно .....
Thx для вашей помощи!
Пожалуйста, отформатируйте свой код ответа лучше, это беспорядок. – burzum