我刚刚进入Yii并且发现它有点令人困惑(至少与Cake或CI相比)。以下是我想知道的一些事情:
1)如果我有一个“添加电台”表格(使用电台模型)。在表单中,将有一个“公司”下拉列表(来自公司模型)。 Station belongsTo Company(Station有company_id的外键)。
如何生成下拉列表?用于提取数据的Php代码是应该存储在模型中,还是应该只是表格中的一行?
2)我还有以下数据库表:
station
- id
- location_id
location
- id
- state_id
- city_id
state
- id
- state
city
- id
- city
现在,以与上面相同的形式,我希望有一个“位置”字段,然后是城市和州的2个下拉菜单。无论用户选择什么,都将作为外键对存储在位置表中。我该怎么做呢?
答案 0 :(得分:1)
1)看看我对这个问题的回答有关下降的提示(关键是CHtml :: listData):
Does CDbcommand method queryAll() in yii return indexed entries only?
2)location
只是state
和city
之间的关系表吗?然后在您的城市和州模型中执行MANY_MANY relation()。 AdvancedAR扩展使管理MANY_MANY关联的生活变得更加轻松。
否则,只需为每个表设置一个模型,并在它们之间添加适当的relations()。然后在表单发布操作中,创建一个新位置并设置state_id
和city_id
,然后保存()。