$params['title'], 'state' => $params['state'], 'top' => $params['top'] ]); ArticleContent::create(['article_id' => $res->id, 'content' => $params['content']]); if ($params['tag']) { $label_id = Label::whereIn('label_name', $params['tag'])->column('id'); foreach ($label_id as $v) { $find = ArticleLabel::where('label_id', $v)->find(); if (!$find) { ArticleLabel::create(['article_id' => $res->id, ['label_id'] => $v]); } } } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑文章 * @param array $params * @return bool * @author likeadmin * @date 2024/02/05 16:36 */ public static function edit(array $params): bool { Db::startTrans(); try { Article::where('id', $params['id'])->update([ 'title_map' => $params['title_map'], 'title' => $params['title'], 'state' => $params['state'], // 'pv' => $params['pv'], 'top' => $params['top'], // 'create_user' => $params['create_user'], // 'update_user' => $params['update_user'] ]); $find = ArticleContent::where('article_id', $params['id'])->find(); if ($find) { ArticleContent::where('article_id', $params['id'])->update(['content' => $params['content']]); } else { ArticleContent::create(['article_id' => $params['id'], 'content' => $params['content']]); } if ($params['tag']) { $arr = []; $label_arr_id = []; foreach ($params['tag'] as $vv) { $arr[] = ['label_name' => $vv]; $label_id = Label::where('label_name', $vv)->value('id'); if ($label_id) { $label_arr_id[] = $label_id; } else { $label = Label::create(['label_name' => $vv]); $label_arr_id[] = $label->id; } } foreach ($label_arr_id as $v) { $find = ArticleLabel::where('label_id', $v)->find(); if (!$find) { ArticleLabel::create(['article_id' => $params['id'], 'label_id' => $v]); } } } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除文章 * @param array $params * @return bool * @author likeadmin * @date 2024/02/05 16:36 */ public static function delete(array $params): bool { return Article::destroy($params['id']); } /** * @notes 获取文章详情 * @param $params * @return array * @author likeadmin * @date 2024/02/05 16:36 */ public static function detail($params): array { $detail = Article::with('detail')->findOrEmpty($params['id'])->toArray(); if ($detail) { $arr = ArticleLabel::where('article_id', $params['id'])->column('label_id'); if ($arr) { $detail['tag'] = Label::whereIn('id', $arr)->column('label_name'); } } return $detail; } }