Phalcon ORM isNew
Posted
技术标签:
【中文标题】Phalcon ORM isNew【英文标题】: 【发布时间】:2014-12-20 22:01:57 【问题描述】:Phalcon 的 ORM 是否有类似 isNew
的东西?
目前我正在使用:
% if user.getID() %
'Edit user ' ~ user.name
% else %
'New user'
% endif %
但不确定这是否正确。
请使用 Phalcon 1.3.x。 谢谢
【问题讨论】:
【参考方案1】:我在所有模型上都使用这种类型的模式,并以与您相同的方式使用 isNew()。
class SomeModel extends Phalcon\Mvc\Collection
public static function getNew()
$t = new self();
$t->someFieldToInit = 'some-val';
return $t;
public static function findByIdOrNew($_id)
$t = self::findById($_id);
return $t ?: self::getNew();
public function isNew()
return !$this->getId();
【讨论】:
【参考方案2】:getId 方法似乎在最新版本中不可用:https://docs.phalconphp.com/3.4/en/api/Phalcon_Mvc_Model
它可以使用“脏状态”来代替:
public function isNew()
return $this->getDirtyState() == self::DIRTY_STATE_TRANSIENT;
【讨论】:
【参考方案3】:在你的情况下,什么是新的意思?如果它检查了任何人刚刚注册到您的网站。也许我们可以使用身份验证来获取该用户
【讨论】:
让我感兴趣的是创建一个表单(例如 VOLT 视图)来创建和编辑模型。例如在 backend/views/users/edit.volt 和 backend/views/users/new.volt% include 'users/_form' with ['form':form, 'user':user] %
中使用以上是关于Phalcon ORM isNew的主要内容,如果未能解决你的问题,请参考以下文章
phalcon: Windows 下 Phalcon dev-tools 配置 和 Phpstorm中配置Phalcon 代码提示