获取未知属性yii2中的异常

Beh*_*ani 6 php yii2

我在yii2有一个模型

<?php

namespace app\models;

/**
 * This is the model class for table "car_ad".
 *
 * @property integer $id
 * @property integer $brand_id
 * @property integer $sub_brand_id
 * @property integer $sell_type
 * @property integer $year
 * @property integer $the_function
 * @property integer $fuel_type_id
 * @property integer $gearbox
 * @property integer $sell_mode
 * @property integer $real_price
 * @property integer $prepayment
 * @property integer $installment_price
 * @property integer $no_installments
 * @property integer $delivery_time_id
 * @property integer $installments_period
 * @property integer $body_status_id
 * @property integer $body_color_id
 * @property integer $inside_color_id
 * @property integer $number_type
 * @property string $description
 * @property integer $ad_type_id
 * @property integer $provice_id
 * @property integer $city_id
 * @property string $address
 * @property string $lang
 * @property string $lat
 * @property string $creation_date
 * @property integer $user_id
 */
class CarAd extends \yii\db\ActiveRecord
{
    public $imageFiles;
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'car_ad';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['brand_id', 'sub_brand_id', 'sell_type', 'year', 'used_value', 'fuel_type_id', 'gearbox', 'body_status_id', 'body_color_id', 'number_type', 'ad_type_id', 'provice_id', 'city_id', 'address', 'lang', 'lat', 'creation_date', 'user_id'], 'required'],
            [['brand_id', 'sub_brand_id', 'sell_type', 'year', 'fuel_type_id', 'used_value ', 'gearbox', 'sell_mode', 'real_price', 'prepayment', 'installment_price', 'no_installments', 'delivery_time_id', 'installments_period', 'body_status_id', 'body_color_id', 'inside_color_id', 'number_type', 'ad_type_id', 'provice_id', 'city_id', 'creation_date', 'user_id'], 'integer'],            
            [['description'], 'string'],
            [['address', 'lang', 'lat'], 'string', 'max' => 512],
            [['imageFiles'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg', 'maxFiles' => 10],
        ];
    }

    public function upload()
    {   

        foreach ($this->imageFiles as $file) {
            $image = New CarAdImage();            
            $image->image = $file->baseName . '.' . $file->extension;
            $image->car_ad_id = $this->id;
            $image->save();
            $file->saveAs('img/car_ad/' . $file->baseName . '.' . $file->extension);
        }        
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => '?????', 'brand_id' => '????', 'sub_brand_id' => '???','sell_type' => '???? ?? ????',
            'year' => '???','used_value' => '??????','fuel_type_id' => '????? ????','gearbox' => '??????',
            'sell_mode' => '??? ????','real_price' => '???? ????','prepayment' => '??? ??????','installment_price' => '???? ?? ???','no_installments' => '????? ?????','delivery_time_id' => '???? ?????',
            'installments_period' => '???? ??????',
            'body_status_id' => '????? ????',
            'body_color_id' => '??? ????',
            'inside_color_id' => '??? ????',
            'number_type' => '??? ????',
            'description' => '??????? ?????',
            'ad_type_id' => '??? ????',
            'provice_id' => '?????',
            'city_id' => '???????',
            'address' => '????',
            'lang' => '??? ?????????',
            'lat' => '??? ?????????',
            'creation_date' => '????? ?????',
            'user_id' => '????? ????? ?????',
            'imageFiles' => '?????? ????'
        ];
    }
}
Run Code Online (Sandbox Code Playgroud)

当我想提交我面对此错误的表单时.

Getting unknown property: app\models\CarAd::used_value

但正如你所看到我在我的领域有这个领域.我的表名是car_ad.我的代码有什么问题?

Biz*_*ley 10

因为@property注释中没有此字段,我猜您在生成模型后添加了它.如果已缓存数据库模式,则在更新缓存之前不会获取新字段.尝试删除DB的缓存.

  • 您可以在任何控制器中执行 `Yii::$app-&gt;cache-&gt;flush();` 来清除缓存,它对我有用 (2认同)