DB::transaction 抛出未定义变量错误异常

问题描述 投票:0回答:2

在 Laravel 5 DB::transaction 上工作但抛出以下错误:

异常“ErrorException”,消息“未定义的变量:任务”

这是我的代码:

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

注意:没有

DB::transaction
功能也能正常工作。

我检查了每一行代码,但没有发现任何问题,请告诉我哪里出了问题?

php laravel laravel-5
2个回答
8
投票

您应该将变量

$tasks
传递给匿名函数:
试试这个

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

3
投票

使用这个:

private function addTasks($tasks, $id) {
    DB::transaction(function() use ($tasks, $id) {
        DB::table('task')->whereIn('id',$tasks)->update(array('task_parent_id' => $id));
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.