【问题标题】:Error handling codeigniter and phpactiverecord错误处理 codeigniter 和 phpactiverecord
【发布时间】:2011-09-08 17:54:33
【问题描述】:

我是 CodeIgniter 和 PhpActiverecord 的新手,我想知道在使用 CI 和 phpactiverecord 时如何最好地将错误从模型传播到控制器。作为一个简单的例子,考虑一下:

class Book extends ActiveRecord\Model {

  static $validates_presence_of = array(
    array('title')
  );

  public static function new_book($title){
    $new_record = Book::create(array(
      'title' => $title
    ));

    if($new_record->is_invalid())
      //propagate error with $new_record->errors->full_messages()
    else
      return $new_record;
  }

}

我应该在我的控制器中有一个变量来检查是否设置了错误,或者我应该只返回$new_record,不管发生什么,然后在控制器中检查is_invalid()?我想在模型中完成大部分工作(遵循“胖模型瘦控制器”原则),但我真的看不到将错误传播到控制器和视图的“好”方式。

【问题讨论】:

标签: php codeigniter error-handling phpactiverecord


【解决方案1】:

为什么不在模型中添加错误报告方法

class Book extends ActiveRecord\Model {

  private $errors = array();

  public function get_errors() {
    return $this->errors;
  }

  static $validates_presence_of = array(
    array('title')
  );

  public static function new_book($title){
    $new_record = Book::create(array(
      'title' => $title
    ));

    if($new_record->is_invalid())
      //propagate error with $new_record->errors->full_messages()
      $this->errors[] = $new_record->errors->full_messages()
    else
      return $new_record;
  }

}

在控制器中,测试是否返回 false 或 NULL 值。如果是这样,您可以调用 get_errors() 方法,根据需要进行任何其他格式化,然后将数组传递给视图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多