2017-01-20 12 views
0

私はyii2に問題があり、助けが必要です: 私はMsSQL db1とdb2の2つのデータベースを持っていますが、私はdb1テーブルのビューを持っています。問題は、私がdb2に挿入すると、$ model-> idまたは$ model-> getPrimaryKey()を使ってトランザクションIDを取得できないということです。 誰もこれを解決する方法を知っていますか? これは私のモデルである:他のデータベースのテーブルのビューに挿入

<?php 

namespace app\models; 

use Yii; 

class Documents extends \yii\db\ActiveRecord 
{ 
    public static function primaryKey() 
    { 
     return ['id']; 
    } 

    /** 
    * @inheritdoc 
    */ 
    public static function tableName() 
    { 
     return 'documents'; 
    } 

    /** 
    * @inheritdoc 
    */ 
    public function rules() 
    { 
     return [ 
      [['realname', 'size'], 'required'], 
      [['realname'], 'string'], 
      [['size'], 'integer'], 
     ]; 
    } 

    /** 
    * @inheritdoc 
    */ 
    public function attributeLabels() 
    { 
     return [ 
      'id' => 'ID', 
      'realname' => 'Realname', 
      'size' => 'Size', 
     ]; 
    } 


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

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

} 
+0

あなたは何を試しましたか? –

+0

$ model-> idと$ model-> PrimaryKey() – Yordankis

答えて

1

yii2のソースコードの多くの研究と改正した後、私は主キーは私の中autoincremental、ある場合save()のYiiを使用した後にのみ、レジストリの値をリロードすることを実現事件は決して実現されません。
これはビューであるため、save()メソッドを使用した後にYii :: $ app-> db-> lastInsertIDメソッドを使用して、挿入で生成されたIDを取得します。
私は、新しく作成されたレジストリを強制的にロードできると便利だと思います。

関連する問題