【问题标题】:cakephp beforesave questioncakephp 保存前的问题
【发布时间】:2011-09-01 10:04:06
【问题描述】:

我在 book.cake 中关注,但我不知道我应该向参数发送一些东西。

function beforeSave() {
if (!empty($this->data['Article']['create_dt']) && !empty($this->data['Article']['modified_dt'])) {
        $this->data['Article']['create_dt'] = $this->dateFormatBeforeSave($this->data['Article']['create_dt']);
        $this->data['Article']['modified_dt'] = $this->dateFormatBeforeSave($this->data['Article']['modified_dt']);
}
return true;
}

我尝试搜索示例但没有找到。 我需要很多例子
有人可以帮我找到大资源 谢谢推荐

【问题讨论】:

  • 抱歉,您的具体问题是什么?

标签: cakephp model cakephp-1.3


【解决方案1】:

尝试在蛋糕中使用创建和修改的具有日期时间类型的魔法字段会自动处理它们

【讨论】:

    【解决方案2】:

    我想提一下, beforeSave() 应该小心使用,因为每次使用此模型保存数据时都会使用它。

    如果你忘记使用它,你会得到意想不到的结果。 发生在我身上好几次......;)

    【讨论】:

      【解决方案3】:

      beforeSave 会在 Cake 保存数据之前自动调用。在其中,您可以在每次保存之前做任何您想做的事情。通常这意味着更改$this->data,即即将保存的数据。

      该方法被传递一个参数:array('validate' => true/false, ('fieldList' => array(...)) 形式的数组。这对应于您可以提供给save() 的两个额外参数:

      $this->Model->save($this->data, false, array('foo', 'bar'));
      

      在这种情况下,数组看起来像
      array('validate' => false, 'fieldList' => array('foo', 'bar'))

      你可以通过指定一个参数来接受这个数组:

      public function beforeSave($options) { ... }
      

      $options 看起来像上面描述的那样。您可以随意使用这些信息。

      如果你不从beforeSavereturn true,保存操作将被完全取消。

      就是这样。

      【讨论】:

      • 谢谢
        我每次创建或修改数据都需要记录时间,你能指导我吗
      • +1,很好的清晰解释,让我巧妙地解决了 MSSQL 的日期保存问题
      猜你喜欢
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多