3

我需要覆盖默认的 Profile 模型。我已经设法添加了我需要的字段,但是从那以后我缺少了一些东西。在插入和更新时,这些字段不会更新到数据库。

我已经创建了必要的迁移,所以我已经在数据库中有这些字段

我错过了什么> 见下面我的 app/models/Profile.php

<?php

namespace app\models;

/**
 * Description Profile
 *
 * This form @overrides dektrium\user\models\Profile
 */
use dektrium\user\models\Profile as BaseProfile;
use yii\web\UploadedFile;
use Yii;
use dektrium\user\models\User;

class Profile extends BaseProfile {

    /**
     * public variables to be added to the model
     */
    public $profile_pic;
    public $expertise_id;
    public $country_id;

    public function rules() {
        $rules = parent::rules();

        $rules['profile_pic'] = ['profile_pic', 'file'];
        $rules['expertise_id'] = ['expertise_id', 'integer'];
        $rules['country_id'] = ['country_id', 'integer'];



        return $rules;
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels() {
        $labels = parent::attributeLabels();
        $labels['profile_pic'] = \Yii::t('user', 'Profile Picture');
        $labels['bio'] = \Yii::t('user', 'Biography');
        $labels['expertise_id'] = \Yii::t('user', 'Expertise');
        $labels['country_id'] = \Yii::t('user', 'Country');
        return $labels;
    }




}
4

1 回答 1

3

首先,删除以下行:

public $profile_pic;
public $expertise_id;
public $country_id;

如果您已经在表中添加了这些字段,则无需声明它们。如您所见,也没有声明其他任何属性。这已经通过扩展模型ActiveRecord并声明tableName

于 2016-02-15T03:10:46.377 回答