2017-10-06 134 views
0

如果我尝试更新记录,我会得到以下错误,但没有任何想法,发生了什么或可能导致此错误的原因。 此外,奇怪的是,这个错误只会被转储导入的记录繁殖。如果我将更新使用saveasnew选项创建的记录,则不会有错误。不幸的是,我不能删除这条记录来重新创建它,因为它会驱逐参照完整性。 这里是错误:yii2的神秘错误

Invalid Configuration – yii\base\InvalidConfigException 
 
Unable to locate message source for category 'mtrelt'. 
 

 
throw new InvalidConfigException("Unable to locate message source for category '$category'.") 
 

 
2. in ...\vendor\yiisoft\yii2\i18n\I18N.php at line 88 – yii\i18n\I18N::getMessageSource('mtrelt') 
 
3. in ...\vendor\yiisoft\yii2\BaseYii.php at line 509 – yii\i18n\I18N::translate('mtrelt', 'Data can't be deleted because it...', [], 'de-DE') 
 

 
4. in ...\vendor\mootensai\yii2-relation-trait\RelationTrait.php at line 312 – yii\BaseYii::t('mtrelt', 'Data can't be deleted because it...')

这里是模型:

<?php 
 

 
namespace common\modules\lookup\models\base; 
 

 
use Yii; 
 
use mootensai\behaviors\UUIDBehavior; 
 

 
class LPersonArt extends \yii\db\ActiveRecord 
 
{ 
 
    use \mootensai\relation\RelationTrait; 
 

 

 
    public function relationNames() 
 
    { 
 
     return [ 
 
      'eAppEinstellungArts', 
 
      'lKontaktVerwendungszwecks', 
 
      'people' 
 
     ]; 
 
    } 
 

 
    public function rules() 
 
    { 
 
     return [ 
 
      [['person_art'], 'string', 'max' => 50], 
 
      [['zieltabelle'], 'string', 'max' => 100], 
 
      [['bemerkung'], 'string', 'max' => 255] 
 
     ]; 
 
    } 
 

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

 
    public function attributeLabels() 
 
    { 
 
     return [ 
 
      'id' => Yii::t('app', 'ID'), 
 
      'person_art' => Yii::t('app', 'Personengruppen'), 
 
      'zieltabelle' => Yii::t('app', 'Zieltabelle'), 
 
      'bemerkung' => Yii::t('app', 'Bemerkung'), 
 
     ]; 
 
    } 
 
    
 

 
    public function getEAppEinstellungArts() 
 
    { 
 
     return $this->hasMany(\common\modules\erweiterung\models\EAppEinstellungArt::className(), ['id_person_art' => 'id']); 
 
    } 
 

 
    public function getLKontaktVerwendungszwecks() 
 
    { 
 
     return $this->hasMany(\common\modules\lookup\models\LKontaktVerwendungszweck::className(), ['id_person_art' => 'id']); 
 
    } 
 

 
    public function getPeople() 
 
    { 
 
     return $this->hasMany(\common\modules\basis\models\Person::className(), ['id_person_art' => 'id']); 
 
    } 
 

 
    public function behaviors() 
 
    { 
 
     return [ 
 
      'uuid' => [ 
 
       'class' => UUIDBehavior::className(), 
 
       'column' => 'id', 
 
      ], 
 
     ]; 
 
    } 
 

 
    public static function find() 
 
    { 
 
     return new \common\modules\lookup\models\LPersonArtQuery(get_called_class()); 
 
    } 
 
}

这里是控制器:

public function actionUpdate($id) 
 
    { 
 
     $model = new LPersonArt(); 
 
     if (!Yii::$app->request->post('_asnew') == '1'){  
 
      $model = $this->findModel($id); 
 
     } 
 
     if ($model->load(Yii::$app->request->post()) && $model->saveAll()) { 
 
      return $this->redirect(['view', 'id' => $model->id]); 
 
     } else { 
 
      return $this->render('update', [ 
 
       'model' => $model, 
 
      ]); 
 
     } 
 
    }

这里是视图:

<?php 
 

 
use yii\helpers\Html; 
 
use yii\widgets\ActiveForm; 
 
?> 
 

 
<div class="lperson-art-form"> 
 

 
    <?php $form = ActiveForm::begin(); ?> 
 

 
    <?= $form->errorSummary($model); ?> 
 

 
    <?= $form->field($model, 'id', ['template' => '{input}'])->textInput(['style' => 'display:none']); ?> 
 

 
    <?= 
 
    $form->field($model, 'person_art')->widget(\jlorente\remainingcharacters\RemainingCharacters::classname(), [ 
 
     'type' => \jlorente\remainingcharacters\RemainingCharacters::INPUT_TEXTAREA, 
 
     'text' => Yii::t('app', '{n} characters remaining'), 
 
     'options' => [ 
 
      'rows' => '3', 
 
      'class' => 'col-md-12', 
 
      'maxlength' => 50, 
 
      'placeholder' => Yii::t('app', 'Write something') 
 
     ] 
 
    ]) 
 
    ?> 
 

 
    <?= 
 
    $form->field($model, 'bemerkung')->widget(\jlorente\remainingcharacters\RemainingCharacters::classname(), [ 
 
     'type' => \jlorente\remainingcharacters\RemainingCharacters::INPUT_TEXTAREA, 
 
     'text' => Yii::t('app', '{n} characters remaining'), 
 
     'options' => [ 
 
      'rows' => '3', 
 
      'class' => 'col-md-12', 
 
      'maxlength' => 255, 
 
      'placeholder' => Yii::t('app', 'Write something') 
 
     ] 
 
    ]) 
 
    ?> 
 

 
    <div class="form-group"> 
 
     <?php if (Yii::$app->controller->action->id != 'save-as-new'): ?> 
 
      <?= Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> 
 
     <?php endif; ?> 
 
     <?php if (Yii::$app->controller->action->id != 'create'): ?> 
 
      <?= Html::submitButton(Yii::t('app', 'Save As New'), ['class' => 'btn btn-info', 'value' => '1', 'name' => '_asnew']) ?> 
 
     <?php endif; ?> 
 
     <?= Html::a(Yii::t('app', 'Cancel'), Yii::$app->request->referrer, ['class' => 'btn btn-danger']) ?> 
 
    </div> 
 

 
    <?php ActiveForm::end(); ?> 
 

 
</div>

+0

您是否创建了消息文件app.po? – Govind

回答

0

问题将得到解决添加以下代码的

common/config/main-local.php 

部件