使用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
功能,它的工作正常。
我已检查过每一行代码但发现没有错,请告诉我哪里出错了?
答案 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));
});
}