我遇到yii2的问题,我需要帮助: 我在MsSQL db1和db2中有2个数据库,在db2中我有一个db1表的视图。问题是,当我插入db2时,我无法使用$ model->获取事务ID。 id或$ model-> getPrimaryKey()。 有谁知道如何解决这个问题? 这是我的模特:
<?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 :(得分:1)
经过对yii2源代码的大量调查和修改后,我意识到在使用save ()
后,如果主键是自动增量,则仅重新加载注册表的值,在我的情况下永远不会满足。
由于它是一个视图,因此解决方案是在使用Yii :: $ app-> db-> lastInsertID
方法获取插入中生成的id后使用save ()
。
我认为能够强制新创建的注册表加载会很有用。