我刚开始在Yii开发我的新项目,我是Yii的新手以及框架和MVC结构。
我会得到一些关于为该表制作元表和模型的建议。假设我想为用户存储几个聊天句柄。我创建了一个表来存储用户详细信息,例如 user_id,user_name,email ..以及另一个表格,这是我的元表格,结构为 id,user_id,key,value < / p>
我想将这两个表关联到一个模型中,以便我可以访问元表中存储的密钥值,如$ user-&gt; yahoo。
提前致谢。
答案 0 :(得分:0)
请参阅:http://www.yiiframework.com/doc/guide/1.1/en/database.arr
它将向您介绍一个类似于您想要做的基本示例。请注意,如果使用外键设置数据库,Gii工具将在模型中为您创建此关系。如果您使用MySql,MySqlWorkbench或其他类似工具可以帮助管理外键,您只需要确保使用InnoDB类型表。
答案 1 :(得分:0)
只需为元表和主表创建模型即可。然后,如果您对此表具有forign键关系,则可以将元表模型作为主表的属性进行访问。为了让游戏更清晰:
假设我们有这两个表:
客户 -ID -名称 -地址 -名称 -email
customer_meta -ID -顾客ID -meta_key -meta_value
您将使用Gii为这两个表生成两个模型。然后,如果您使用MySQL和InnoDB表并在customer.id之间创建一个foriegn密钥关系 - &gt; customer_meta.customer_id您将能够访问客户模型中的元数据:
// this will echo get the first meta value
$model = new customer;
$customer = $model->loadModel( 3 );
echo $customer->customer_meta[0]->meta_value;
// or loop through the meta data
foreach( $customer->customer_meta as $meta ) {
echo 'Name: '.$meta->meta_key.' Value: '.$meta->meta_key.'<br />';
}
答案 2 :(得分:-1)
使用getter和setter。定义一个getYahoo方法,并在该方法中执行de lookup table以检索所需的值