Кажется, я не могу найти способ отловить исключения ActiveRecord, используя метод: 2
МЕТОД: 1 Это работает, как и ожидалось, знает достаточно об объекте для записи ошибок!
$model = model::find(id);
if($model->delete()){
echo 'yay';
}else{
throw new \ActiveRecord\ActiveRecordException($model->errors())
}
// МЕТОД: 2 Нет информации для записи ошибки
if(Model::create(attributes)){
echo 'yay'
}else{
throw new \ActiveRecord\ActiveRecordException('where do I pull error from now?')
}
// мой пример из реального мира
public function create(){
//grab the validation data from $this->validation_rules
$this->form_validation->CI = & $this;
$this->form_validation->set_rules($this->validation_rules);
//run the validation
if ($this->form_validation->run($this)) {
//loop through $_POST data and change any $key[values] where needed
foreach($this->input->post() as $k => $v){
if($k == 'status'){
$v = ($v === 'publish') ? 1 : 0;
}
// recomplie $_POST with modified values into temp array and break out of loop
$tmp[$k] = $v;
continue;
}
//try to create a new page ( throw exception : build )
try{
if(!Page::create($tmp)){
throw new \ActiveRecord\ActiveRecordException('Arrrgh custom error required with some guess work?');
}else{
$this->session->set_flashdata('success', 'Page Successfully Created');
redirect('admin/pages');
}
}catch(\ActiveRecord\ActiveRecordException $e){
//log any errors thrown
log_message('error', $e->getMessage());
}
// validation failed, show form again
}else{
$this->create_form();
}
}