Yii2属性映射到tablename

时间:2017-03-03 16:55:48

标签: yii2 php-7 yii2-basic-app

我使用Yii2 2.0.9基本模板,我尝试设置我的班级 我的课我在我的财产中使用其他课程的参考。

/**
*
*@property Contact contact
*/
class User extends ActiveRecord {

    public static function tableName() {
        return "user";
    }

    /**
    * This is want I need
    */
    public function databaseMapping(){
        return [
            "contact" => "contact_id"
        ];
    }
}

Yii2中有解决方案吗?

感谢MarvinThör

在Grails中我可以这样写:

class User {

    Contact contact
    Boolean passwordExpired

    static mapping = {

        contact(column: 'contact_id')
        passwordExpired(column: 'password_expired')
    }    
}

User user = new User();
user.passwordExpired = true
user.contact = new Contact();

我想要相同的

2 个答案:

答案 0 :(得分:0)

更改标签和db列保持不变。

public function attributeLabels()
{
    return [
        'contact_id' => Yii::t('app', 'Use your name here'),

    ];
}

答案 1 :(得分:0)

您可能希望在模型类中使用方法attributeLabels()来定义要向最终用户显示的标签名称。

public function attributeLabels() {
    return [
        'contact_id' => 'Contact',
    ];
}

但是,有时候使用Yii2创建RESTful API时,需要返回带有特定字段名称的字段的json。对于这些情况,您可以使用fields()方法:

public function fields() {
    return [
        'contact' => 'contact_id',
    ];
}

此方法返回toArray()默认情况下应返回的字段列表。您可以查看更多相关信息HERE