If i’ve got 2(or more) model methods which do (for example, in billing system) enrolling/withdrawing, and one controller’s method that calls 2(or more) of these model methods.
Is it a good way(maybe, any suggestions how to do it better) to write/use 2model methods like these:
public function start_transaction(){
$this->db->trans_start();
}
public function end_transaction(){
$this->db->trans_complete();
}
And call in controller’s method:
public function smth(){
//something
$this->model->start_transaction();
$this->model->enroll();
//something else
$this->model->withdraw();
$this->model->end_transaction();
}
Will transaction be reversed, if model’s withdraw() method fails?
Thanks.
I’m fairly new to CodeIgniter, but I’ve been doing a fair amount of transactional work in my project.
However, I’ve been using the DataMapper Overzealous ORM library – and handling transactions using that code library.
So DMZ code I’ve been writing (caution – may not be best practice) would look something like:
I’m also assuming that the “something else” happening in your controller prevents you from creating a single method in your model that would just handle both the enroll & withdraw functions in a transaction.