DB :: transaction throw未定义变量Error Exception

时间:2017-08-04 08:00:04

标签: php laravel laravel-5

使用Laravel 5 DB :: transaction但抛出以下错误:

  

异常'ErrorException',消息'Undefined variable:tasks'

这是我的代码:

private function addTasks($tasks, $id) {
  DB::transaction(function() {
    DB::table('task')->whereIn('id', $tasks)->update(array('task_parent_id' => $id));
  });
}

注意:没有DB::transaction功能,它的工作正常。

我已检查过每一行代码但发现没有错,请告诉我哪里出错了?

2 个答案:

答案 0 :(得分:5)

您应该将变量$tasks传递给匿名函数:
试试这个

private function addTasks($tasks, $id) {
      DB::transaction(function() use ($tasks) {
        DB::table('task')->whereIn('id', $tasks)->update(array('task_parent_id' => $id));
      });
    }

答案 1 :(得分:3)

使用此:

private function addTasks($tasks, $id) {
    DB::transaction(function() use ($tasks, $id) {
        DB::table('task')->whereIn('id',$tasks)->update(array('task_parent_id' => $id));
    });
}