php - 关系 : MySQL database view and Yii's CActiveRecord

标签 php mysql yii

我正在编写的这个应用程序中有一些表。其中之一是另一个数据库连接上的表的 View :

View Staff
staffid,
fullname
<etc>

Table User
user_id
staffid
<etc>

尝试使用如下所示的 with() 方法:User::model()->with('Staff')->findAll() 会产生错误为 foreach() 提供的参数无效第 826 行:

825    $pk=array();
826         foreach($this->_pkAlias as $name=>$alias)
827         {
828             if(isset($row[$alias]))

问题是 Yii 需要主键,但 View 默认不声明主键?

我在这里能做什么?

最佳答案

如果其他人遇到此问题,答案是通过使用函数 PrimaryKey 定义主键来在模型中覆盖它。

public function primaryKey() {
    return 'staffid';
}

引用:http://www.yiiframework.com/forum/index.php/topic/6403-how-to-use-cjoinelement-on-a-table-without-primarykey-in-database/page__view__findpost__p__32815

关于php - 关系 : MySQL database view and Yii's CActiveRecord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27516322/

相关文章:

php - 在 2-3 组大括号之间获取文本的好方法

php - 如何删除 WordPress 中多余的 <p>?

php - 一个月差距计算

javascript - Yii,在提交按钮上附加一个 javascript 函数

php - 使用 SQL 计算表中前几行的值

mysql - 处理选择查询mysql上的空值

mysql - QueryDslJpaRepository.findAll 批量更新从更新 [0] 返回了意外的行数;实际行数 : 0; expected: 1

javascript - 将 li 输入值数据转换为 JSON

yii - 如何写三个模型之间的关系

php - Woocommerce 结帐页面上的额外 paypal 费用