laravel/laravel — pull request #1880 by authman (2013-04-14 06:14:41+00:00)
Title: Patch for ->push();

Just like $model->save(), $model->push() needs to return success / fail. I ran into this issue because my app was rolling back the transaction when if (!$model->push()) {} occurred, which of course was returning Null.

With this pull request, if the model's ->save() method or any of the child relationship's ->push() method's fail, it'll return false. This of course may leave the DB in a mixed state, so it is up the the user to encapsulate ->push() in a pDO transaction and roll back if ->push() fails.

L3 Example:

DB::connection()->pdo->beginTransaction();
if (!$model->push())
DB::connection()->pdo->rollBack();
else
DB::connection()->pdo->commit();

Does $model->push() exist in L4? If not, it is really nifty to have. Hint Hint.