【问题标题】:Model for meta table in YiiYii 中元表的模型
【发布时间】:2011-09-21 22:09:26
【问题描述】:

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

我想就制作元表和该表的模型获得一些建议。假设我想为一个用户存储几个聊天句柄。我创建了一个表来存储用户详细信息,例如 user_id、user_name、email.. 以及另一个表,它是我的元表,其结构为 id、user_id、key、value

我想将这两个表关联到一个模型中,以便我可以访问存储在元表中的键的值,例如 $user->yahoo。

提前致谢。

【问题讨论】:

标签: php database model yii relational


【解决方案1】:

只需为元表和主表创建一个模型。然后,如果您与此表有外键关系,您将能够访问元表模型作为主表的属性。为了让事情更清楚:

假设我们有这两个表:

客户 -ID -姓名 -地址 -姓名 -电子邮件

customer_meta -ID -客户ID -meta_key -meta_value

您将使用 Gii 为这两个表生成两个模型。然后,如果您使用 MySQL 和 InnoDB 表并创建外键关系 ebtween customer.id -> 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】:

    见:http://www.yiiframework.com/doc/guide/1.1/en/database.arr

    它会引导您完成一个与您想做的类似的基本示例。请注意,如果您使用外键设置数据库,Gii 工具将在您的模型中为您创建此关系。如果您使用 MySql、MySqlWorkbench 或其他类似工具可以帮助管理外键,您只需要确保您使用的是 InnoDB 类型的表。

    【讨论】:

      【解决方案3】:

      使用 getter 和 setter。定义一个 getYahoo 方法,并在该方法中查找表以检索您想要的值

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-09
        • 1970-01-01
        • 1970-01-01
        • 2013-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多