在 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
功能也能正常工作。
我检查了每一行代码,但没有发现任何问题,请告诉我哪里出了问题?
您应该将变量
$tasks
传递给匿名函数:private function addTasks($tasks, $id) {
DB::transaction(function() use ($tasks, $id) {
DB::table('task')->whereIn('id', $tasks)->update(array('task_parent_id' => $id));
});
}
使用这个:
private function addTasks($tasks, $id) {
DB::transaction(function() use ($tasks, $id) {
DB::table('task')->whereIn('id',$tasks)->update(array('task_parent_id' => $id));
});
}