Yii元表的模型

时间:2011-06-24 10:13:49

标签: php database model yii relational

我刚开始在Yii开发我的新项目,我是Yii的新手以及框架和MVC结构。

我会得到一些关于为该表制作元表和模型的建议。假设我想为用户存储几个聊天句柄。我创建了一个表来存储用户详细信息,例如 user_id,user_name,email ..以及另一个表格,这是我的元表格,结构为 id,user_id,key,value < / p>

我想将这两个表关联到一个模型中,以便我可以访问元表中存储的密钥值,如$ user-&gt; yahoo。

提前致谢。

3 个答案:

答案 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以检索所需的值