我是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()检查?我想在模型中做大部分工作(遵循“胖模型瘦控制器”原则),但我真的看不到一种将错误传播到控制器和视图的“好”方法。
发布于 2012-03-03 04:20:42
为什么不在模型中添加一个错误报告方法
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()方法,执行任何其他格式设置,并将数组传递给视图。
https://stackoverflow.com/questions/7352408
复制相似问题