作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有以下架构
User:
columns:
id:
type: integer
primary: true
name: string
relations:
UserGroup:
local: userGroup_id
foreign: id
refClass: User2Group
UserGroup:
columns:
id:
type: integer
primary: true
name: string
relations:
User:
local: user_id
foreign: id
refClass: User2Group
User2Group:
columns:
user_id:
type: integer
primary: true
userGroup_id:
type: integer
primary: true
extraColumn: string
我正在努力做
$user=new Model_User();
$user->name='user';
$user->UserGroup[0]->name='group';
$user->UserGroup[0]->extraColumn='test';
$user->save();
但它给了我一个异常“Doctrine_Record_UnknownPropertyException”,消息是“UserGroup”上的未知记录属性/相关组件“extraColumn”,我做错了什么? (顺便说一下,我已经尝试将本地/外国更改为其他任何它仍然不起作用的内容)
最佳答案
Doctrine 并不真正支持连接表上的额外列。但是您可以使用 Doctrine_Query 访问和更新这些值。
Doctrine_Query::create()
->update('User2Group')
->set('extraColumn', 'Dude its working')
->where('user_id = ?', $user['id'])
->andWhere('userGroup_id = ?', $userGroup['id'])
->execute();
要获取此值,您需要执行选择查询。
Doctrine::getTable('User')->createQuery('u')
->addSelect('u.*, ug.*, u2g.extraColumn')
->leftJoin('u.UserGroup ug')
->leftJoin('ug.User2Group u2g WITH u2g.user_id = ?', $user['id'])
->execute();
关于PHP Doctrine : how to set refClass extra columns?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4888772/
我目前正在设计一个网站,使用 symfony (1.2) 和 Doctrine 作为 ORM。 我有一个晚餐类、一个标准类和一个标记类。 标记与晚餐和 标准,并具有私有(private)属性, 如 D
我有以下架构 User: columns: id: type: integer primary: true name: stri
我正在使用 symfony 1.4.5、Doctrine 1.2 和 Mysql 5。 在我的 schema.yml 中,我有一些效果很好的多对多关系。但我需要连接表具有 onDelete: CASC
我是一名优秀的程序员,十分优秀!