如何从覆盖的eloquent save()方法访问模型属性? (将空输入转换为null)

时间:2014-09-02 12:56:51

标签: laravel laravel-4 eloquent

使用以下评论https://stackoverflow.com/a/13518727/3159370中提供的代码后,我想访问模型属性并在模型保存之前更改它们。

如果你很好奇我为什么要这样做,我认为这是将空(varchar)0(整数)转换为null的最佳方法,然后将其保存在数据库中。

编辑:我们正在寻找的是循环遍历所有属性的通用方法。

1 个答案:

答案 0 :(得分:0)

您应该可以使用$ this访问它:

class Page extends Eloquent {

   public function save()
   {
      $this->sanitize();

      parent::save();
   }

   public function sanitize()
   {
      foreach($this->getAttributes() as $key => $value)
      {
         if ( ! $value)
         {
             $this->{$key} = null;
         }
      }   
   }
}

这是未经测试的代码,但应该有效。