教义:将模型值设置为数组
Posted
技术标签:
【中文标题】教义:将模型值设置为数组【英文标题】:Doctrine: Set model values as array 【发布时间】:2009-09-16 17:05:29 【问题描述】:我有一组值要用来更新我的模型。
Doctrine_Access 提供了一个 setArray 函数,它几乎正是我所需要的——除了它关心模型中没有字段的值。我希望那些被忽略。
一个小例子。假设我们有一个包含字段用户名的用户表。
$user = new User();
$user->setArray(array('username'=>'xyz'))->save();
这样行!
$user = new User();
$user->setArray(array('username'=>'xyz','anotherKey'=>'anotherValue'))->save();
那不是。如果没有相关字段,我希望 Doctrine 忽略另一个键。 目的是,我不想在更新模型之前过滤我的数组。
完成这项工作最干净、最简单的方法是什么?
【问题讨论】:
【参考方案1】:Doctrine_Record::fromArray() 解决了它。 不幸的是它没有返回对象,所以它对于方法链接没有用......
【讨论】:
【参考方案2】:这很有用
为模型添加查找方法:
class Address extends Doctrine_Record
public static function factory()
return new Address();
public function findById($id)
$findObject = Doctrine::getTable('Address')->findOneByid($id);
return $findObject;
....
并使用它
$address = Address::factory()
->findById(13)->set('name', 'new data')->set('anotherfield','another data')->save();
【讨论】:
我认为您误解了这个问题。他正在尝试创建一条新记录,实例化模型并从数组中设置值。你没有给他任何接近那个的方法。很抱歉投了反对票,让其他人知道这不是一个有用的答案。以上是关于教义:将模型值设置为数组的主要内容,如果未能解决你的问题,请参考以下文章