Cakephp noobによる簡単な質問:
プレーヤーとチームの2つのモデルがあります。
チームにはid(int)とcool_name(varchar)があります。
プレーヤーには、id(int)、cool_name(varchar)、およびチームテーブルの参照team_id(int)があります。
英語のテーブルがないため、名前の代わりにCool_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');
//...
わかりました。チームIDを含む選択があります。IDは必要ありませんが、チームの名前を入力してから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') ) ) );