首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理codeigniter和phpactiverecord时出错

处理codeigniter和phpactiverecord时出错
EN

Stack Overflow用户
提问于 2011-09-09 01:54:33
回答 1查看 350关注 0票数 3

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

代码语言:javascript
复制
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()检查?我想在模型中做大部分工作(遵循“胖模型瘦控制器”原则),但我真的看不到一种将错误传播到控制器和视图的“好”方法。

EN

回答 1

Stack Overflow用户

发布于 2012-03-03 04:20:42

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

代码语言:javascript
复制
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()方法,执行任何其他格式设置,并将数组传递给视图。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7352408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档