OmgDef / yii2-multilingual-behavior

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

Can't get $model->language #64

Closed virtoso closed 7 years ago

virtoso commented 7 years ago

When I trying to set language property I have get an Exception: Setting unknown property: backend\models\Article::language

My DB has structure as in your tutorial. So when I trying in my controller something like this: $model->language = $language; I get an error message.

My controller action update

if (isset($language)) {
    $model = Article::find()->localized($language)->where(['id' => $id])->one();

    $model->language = $language;
} else {
    $model = Article::find()->multilingual()->where(['id' => $id])->one();
}

Field language is a ArticleLang model field.

Have you any suggestion?

virtoso commented 7 years ago

I guess I solved this. This field need to set in behavior at the attributes:

'ml' => [
    'class' => MultilingualBehaviorPM::className(),
    'languages' => Languages::getAll(),
    'langClassName' => ArticleLang::className(),
    'dynamicLangClass' => false,
    'langForeignKey' => 'article_id',
    'tableName' => "{{%articles_lang}}",
    'attributes' => [
        'title', 'text', 'seo_id', 'language',
    ],
],