Простой вопрос от тейкфп нуб:
У меня есть две модели: игрок и команда.
У команды есть id (int) и cool_name (varchar).
У игрока есть id (int), cool_name (varchar) и ссылка на командную таблицу, team_id (int).
Cool_name вместо name, потому что у меня нет таблиц на английском языке, поэтому я не могу использовать поле 'name'.
Итак, команда имеет много игроков, и игрок принадлежит команде.
Модель моего плеера:
class Player extends AppModel {
var $name = 'Player';
var $belongsTo = array('Team');
}
(внутри модели команды нет ничего, кроме имени)
PlayersController:
class PlayersController extends AppController {
var $name = 'Players';
function add() {
$this->set('teams', $this->Player->Team->find('list'));
//then save...
}
В дополнительном представлении плеера:
//...
echo $form->input('squadra_id');
//...
Хорошо, у меня есть выбор с идентификаторами команд внутри; я не хочу идентификатор, но название команды, а затем сохранить идентификатор: что-то вроде (в html)
<select name="data[Player][team_id]" id="PlayerTeamId">
<option value="1">Cool Name 1</option>
<option value="2">Cool Name 2</option>
<!-- -->
<option value="{team id}">{team cool name}</option>
</select>
Как мне это сделать?
вместо
$this->set('teams', $this->Player->Team->find('list'));
поставь это
$this->set('teams', $this->Player->Team->find('list', array('fields' => array('cool name') ) ) );