2015-10-08 42 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

电话UND efined方法后端\ \控制器:: PostlangController的PrimaryKey()

+0

使用本:http://stackoverflow.com/questions/32882444/how-to-use-multilanguage-in-yii2 – mohsen

回答

相关问题