0 レビュー
1 回答
php-他のデータベースのテーブルのビューに挿入します
yii2に問題があり、サポートが必要です。 MsSQL db1とdb2に2つのデータベースがあり、db2には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
レビュー
答え :
解決策:
yii2のソースコードを何度も調査して改訂した後、 save ()
を使用した後、yiiはレジストリの値のみをリロードすることに気付きました。主キーが自動インクリメンタルである場合、これは私の場合は決して実行されません。
ビューであるため、解決策は、 save ()
メソッドを使用して挿入で生成されたIDを取得した後、 Yii :: $ app-> db-> lastInsertID
を使用することです。
新しく作成されたレジストリを強制的にロードできると便利だと思います。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。