数据库事务不执行回滚?
public function store(PostRequest $request)
{
if (is_array($request->get('font_style'))) {
$request['font_style'] = implode(',', $request->get('font_style'));
}
//附加表数据
$result = \DB::transaction(function () use ($request) {
try {
//保存文章
$post = Post::create($request->except('file', 'me_setting', 'tags'));
//保存标签
$post->syncTags($request->get('tags'));
//保存附加表
if (!is_null($request->get('me_setting'))) {
$tableName = $this->getRetableName($request->get('category_id'));
if (\Schema::hasTable($tableName)) {
//
$me_setting_array=$request->get('me_setting');
foreach ($me_setting_array as $k=>$v){
if (is_array($v)){
$me_setting_array[$k]=implode(',',$v);
}
}
\DB::table($tableName)->insert(array_merge(['post_id' => $post->id], $request->get('me_setting')));
}
}
} catch (\Exception $e) {
return $e;
}
});
if (is_null($result)) {
return redirect()->route('post.index')->with('successMsg', '文章创建成功!');
}
return back()->withInput()->withErrors('文章创建失败');
}
为什么使用事务的时候后面附加表的数据保存失败了,文章表的数据还能保存进去?求大神赐教,感谢!
推荐文章: