2015-10-08 8 views
1

У меня возникла проблема с использованием многоязычного поведения Yii2, и я надеюсь, что кто-то здесь может мне помочь.Как использовать многоязычное поведение Yii2

Это моя база данных

CREATE TABLE IF NOT EXISTS `post` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`created_at` datetime NOT NULL, 
`updated_at` datetime NOT NULL, 
`enabled` tinyint(1) NOT NULL DEFAULT '1', 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 


CREATE TABLE IF NOT EXISTS `postLang` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`post_id` int(11) NOT NULL, 
`language` varchar(6) NOT NULL, 
`title` varchar(255) NOT NULL, 
`content` TEXT NOT NULL, 
PRIMARY KEY (`id`), 
KEY `post_id` (`post_id`), 
KEY `language` (`language`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

ALTER TABLE `postLang` 
ADD CONSTRAINT `postlang_ibfk_1` FOREIGN KEY (`post_id`) REFERENCES `post` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; 

И это PostlangController

use omgdef\multilingual\MultilingualBehavior; 
public function behaviors() 
{ 
    return [ 
     'ml' => [ 
      'class' => MultilingualBehavior::className(), 
      'languages' => [ 
       'vi-VN' => 'Russian', 
       'en-US' => 'English', 
      ], 
      //'languageField' => 'language', 
      //'localizedPrefix' => '', 
      //'requireTranslations' => false', 
      //'dynamicLangClass' => true', 
      'langClassName' => PostLang::className(), // or namespace/for/a/class/PostLang 
      'defaultLanguage' => 'vi-VN', 
      'langForeignKey' => 'post_id', 
      'tableName' => "{{%postLang}}", 
      'attributes' => [ 
       'title', 'content', 
      ] 
     ], 
     'verbs' => [ 
      'class' => VerbFilter::className(), 
      'actions' => [ 
       'delete' => ['post'], 
      ], 
     ], 
    ]; 
} 

и выход orror

Позвони унд efined метод Серверные \ Контроллеры \ PostlangController :: PrimaryKey()

+0

использовать это: http://stackoverflow.com/questions/32882444/how-to-use-multilanguage-in-yii2 – mohsen

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^