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.voltbackend/views/users/new.volt % include 'users/_form' with ['form':form, 'user':user] % 中使用

以上是关于Phalcon ORM isNew的主要内容,如果未能解决你的问题,请参考以下文章

phalcon: Windows 下 Phalcon dev-tools 配置 和 Phpstorm中配置Phalcon 代码提示

phalcon: 表单

text phalcon-devtools #Phalcon

phpstorm提示phalcon语法

安装phalcon 开发工具

Phalcon 开发工具(Phalcon Developer Tools)