国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

phalcon中save方法的用法和update方法

Render / 1823人閱讀

摘要:我們來看看一個方法用法。中的方法,他是一個集添加和修改與一身的一個方法。在上面的這個方法中他會自動識別,在數組中有沒有主鍵,主鍵存在執行修改執行添加但是我們會發現,將中沒有的字段,他會清空。

我們來看看一個save方法用法。

phalcon中的save方法,他是一個集 添加 和 修改 與一身的一個方法。

$this->someModel->save($data);

在上面的這個方法中他會自動識別,在$data 數組中有沒有 主鍵,

if(主鍵存在){
    執行修改;
}else{
    執行添加
}

但是我們會發現,將$data 中沒有的字段,他會清空。

下面由marser的phalconCMS中我們可以看到,做了這樣的處理

/**
     * 封裝phalcon model的update方法,實現僅更新數據變更字段,而非所有字段更新
     * @param array|null $data
     * @param null $whiteList
     * @return bool
     */
    public function iupdate(array $data=null, $whiteList=null){
        if(count($data) > 0){
            $attributes = $this -> getModelsMetaData() -> getAttributes($this);
            $this -> skipAttributesOnUpdate(array_diff($attributes, array_keys($data)));
        }
        return parent::update($data, $whiteList);
    }

其中getModelsMetaData

 /**
     * Returns the models meta-data service related to the entity instance
     *
     * @return PhalconMvcModelMetaDataInterface 
     */
    public function getModelsMetaData() {}

zephir源碼

    /**
     * Returns the models meta-data service related to the entity instance
     */
    public function getModelsMetaData() -> 
    {
        var metaData, dependencyInjector;

        let metaData = this->_modelsMetaData;
        if typeof metaData != "object" {

            let dependencyInjector =  this->_dependencyInjector;

            /**
             * Obtain the models-metadata service from the DI
             */
            let metaData =  dependencyInjector->getShared("modelsMetadata");
            if typeof metaData != "object" {
                throw new Exception("The injected service "modelsMetadata" is not valid");
            }

            /**
             * Update the models-metadata property
             */
            let this->_modelsMetaData = metaData;
        }
        return metaData;
    }

和getAttributes

 /**
     * Returns table attributes names (fields)
     *
     * @param PhalconMvcModelInterface $model 
     * @return array 
     */
    public function getAttributes(PhalconMvcModelInterface $model);

還有skipAttributesOnUpdate

/**
     * Sets a list of attributes that must be skipped from the
     * generated UPDATE statement
     * 
     * skipAttributesOnUpdate(array("modified_in"));
     * }
     * }
     * 
     *
     * @param array $attributes 
     */
    protected function skipAttributesOnUpdate(array $attributes) {}

zephir源碼

    /**
     * Sets a list of attributes that must be skipped from the
     * generated UPDATE statement
     *
     *
     * skipAttributesOnUpdate(
     *             [
     *                 "modified_in",
     *             ]
     *         );
     *     }
     * }
     *
     */
    protected function skipAttributesOnUpdate(array! attributes) -> void
    {
        var keysAttributes, attribute;

        let keysAttributes = [];
        for attribute in attributes {
            let keysAttributes[attribute] = null;
        }

        this->getModelsMetaData()->setAutomaticUpdateAttributes(this, keysAttributes);
    }

都是phalcon自帶的

用下面方式進行保存

$result = $this -> iupdate($data);

這樣就將數據被清空的問題解決了。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/22362.html

相關文章

  • 【踩過坑】[web]1.生產與灰度數據緩存;2.Mysql主從不同步;

    摘要:方法,如圖總結因為灰度環境在公司內網,訪問量較小,相比方法,方法可以暫時解決灰度測試時的緩存問題。但是仍然存在風險。 背景:php做web開發,MVC,phalcon 1.生產與灰度數據緩存 原因: service層獲取數據,有新增數據字段; controller層是通過redisCache調用service接口; redisCache采用redis-file雙緩存結構,可能存在...

    sixgo 評論0 收藏0
  • PHP框架Phalcon 之 ACL

    摘要:一般至少要在執行路由前要判斷用戶是否具有權限一般在中,所以應該在它之前獲得填充。以下代碼可參考這里的方法就是重點。參考這里把對象保存在中。 showImg(https://segmentfault.com/img/bVkdih); 使用如下圖解釋這個組件: showImg(https://segmentfault.com/img/bVkdii); 實際最終真正要使用的是access_l...

    mikyou 評論0 收藏0
  • PHP-Phalcon框架數據庫操作

    摘要:本文描述了框架中數據庫操作方法,主要討論框架的組件中的操作方法。屬性方法在框架中支持屬性的擴展查詢,在上例中,可以把條件語句改為同時省略查詢條件結果不變。 本文描述了PHP-Phalcon框架中數據庫操作方法,主要討論Phalcon框架的Model組件中的操作方法。更詳細的Model介紹請參考:官方文檔 1. 連接數據庫 在Phalcon框架中,通過在DI中注入db參數來實現數據庫的...

    xiaotianyi 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<