OmgDef / yii2-multilingual-behavior

Yii2 port of the yii-multilingual-behavior.
146 stars 60 forks source link

Model Unique validator cause error #36

Closed webinjaz closed 8 years ago

webinjaz commented 9 years ago

Column not found: 1054 Unknown column 'name' in 'where clause'

<?php

namespace app\models;

use Yii; use \omgdef\multilingual\MultilingualBehavior; use \omgdef\multilingual\MultilingualQuery;

class Category extends \yii\db\ActiveRecord {

public static function tableName()
{
    return 'category';
}

public function behaviors()
{
    return [
        'ml' => [
            'class' => MultilingualBehavior::className(),
            'languages' => [
                'ar' => 'Arabic',
                'en' => 'English',
            ],
            'defaultLanguage' => 'en',
            'langForeignKey' => 'category_id',
            'tableName' => "{{%categoryLang}}",
            'attributes' => [
                'name',
            ]
        ],
    ];
}

public static function find()
{
    return new MultilingualQuery(get_called_class());
    $c= new MultilingualQuery(get_called_class());
    return $c->multilingual();
}
/**
 * @inheritdoc
 */
public function rules()
{
    return [
        [['name'], 'required'],
        [['name'], 'unique'],
        [['sex'], 'integer'],
        [['name'], 'string', 'max' => 64]
    ];
}

/**
 * @inheritdoc
 */
public function attributeLabels()
{
    return [
        'id' => Yii::t('category', 'ID'),
        'name' => Yii::t('category', 'Name'),
        'sex' => Yii::t('category', 'Sex'),
    ];
}

/**
 * @return \yii\db\ActiveQuery
 */
public function getItems()
{
    return $this->hasMany(Item::className(), ['category_id' => 'id']);
}

}

davidtim commented 9 years ago

Something wrong with public static function find() { return new MultilingualQuery(get_called_class()); $c= new MultilingualQuery(get_called_class()); return $c->multilingual(); }

it should be public static function find() { return new MultilingualQuery(get_called_class()); }

OmgDef commented 9 years ago

@LouaiHaimour you can't use the unique validator for relational data. You should create your own validation rule