小编Con*_*hen的帖子

交易不适用于子功能

DB::beginTransaction()在Laravel中使用但它仅用于在main函数中完成的数据库更改,而不用于子函数.

主要功能代码:

try {
    DB::beginTransaction();
    $data = array(
        'id' => Input::get('id'),
        'task_title' => Input::get('task_title'),
    );
    DB::table('task')->insert($data);
    $id = DB::getPdo()->lastInsertId();

    // Add Actionees
    if (!$this->addActionees(Input::get('actionees'), $id)) {
        DB::rollback();
        return Response::json(false);
    }
    DB::commit();
    return Response::json(true);
} catch (Exception $ex) {
    DB::rollback();
    return Response::json($ex);
}
Run Code Online (Sandbox Code Playgroud)

子功能代码:

private function addActionees($actionees, $id, $status) {
    try {
        DB::table('task_assignee_user')->where('task_id', $id)->delete(); 
        foreach ($actionees as $act) {
            $actAdd = array(
                'task_id' => $id,
                'user_id' => $act->user_id,
            );
            DB::table('task_assignee')->insert($actAdd);
        }
        return True;
    } catch (Exception $ex) {
        return …
Run Code Online (Sandbox Code Playgroud)

php transactions laravel laravel-5

5
推荐指数
1
解决办法
329
查看次数

标签 统计

laravel ×1

laravel-5 ×1

php ×1

transactions ×1