校园论坛
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Modules\AnnoRoute\Attribute\DeleteRoute;
|
||||
use Modules\AnnoRoute\Attribute\GetRoute;
|
||||
use Modules\AnnoRoute\Attribute\PostRoute;
|
||||
use Modules\AnnoRoute\Attribute\PutRoute;
|
||||
use Modules\AnnoRoute\Attribute\RequestAttribute;
|
||||
use Modules\Common\Http\Controllers\BaseController;
|
||||
use Modules\Forum\Http\Requests\ForumCategoryFormRequest;
|
||||
use Modules\Forum\Models\ForumCategoryModel;
|
||||
|
||||
#[RequestAttribute('/forum/category', 'forum.category')]
|
||||
class ForumCategoryController extends BaseController
|
||||
{
|
||||
protected array $searchField = [
|
||||
'status' => '=',
|
||||
];
|
||||
|
||||
protected array $quickSearchField = ['name', 'slug'];
|
||||
|
||||
#[GetRoute(authorize: 'query')]
|
||||
public function query(Request $request): JsonResponse
|
||||
{
|
||||
$params = $request->all();
|
||||
$pageSize = $params['pageSize'] ?? 10;
|
||||
$query = ForumCategoryModel::query();
|
||||
$data = $this->buildSearch($params, $query)
|
||||
->paginate($pageSize)
|
||||
->toArray();
|
||||
return $this->success($data);
|
||||
}
|
||||
|
||||
#[PostRoute(authorize: 'create')]
|
||||
public function create(ForumCategoryFormRequest $request): JsonResponse
|
||||
{
|
||||
ForumCategoryModel::create($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[PutRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'update',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function update(int $id, ForumCategoryFormRequest $request): JsonResponse
|
||||
{
|
||||
$model = ForumCategoryModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('分类不存在');
|
||||
}
|
||||
$model->update($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[DeleteRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'delete',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function delete(int $id): JsonResponse
|
||||
{
|
||||
$model = ForumCategoryModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('分类不存在');
|
||||
}
|
||||
$model->delete();
|
||||
return $this->success();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Modules\AnnoRoute\Attribute\DeleteRoute;
|
||||
use Modules\AnnoRoute\Attribute\GetRoute;
|
||||
use Modules\AnnoRoute\Attribute\PostRoute;
|
||||
use Modules\AnnoRoute\Attribute\PutRoute;
|
||||
use Modules\AnnoRoute\Attribute\RequestAttribute;
|
||||
use Modules\Common\Http\Controllers\BaseController;
|
||||
use Modules\Forum\Http\Requests\ForumCommentFormRequest;
|
||||
use Modules\Forum\Models\ForumCommentModel;
|
||||
|
||||
#[RequestAttribute('/forum/comment', 'forum.comment')]
|
||||
class ForumCommentController extends BaseController
|
||||
{
|
||||
protected array $searchField = [
|
||||
'status' => '=',
|
||||
'post_id' => '=',
|
||||
];
|
||||
|
||||
protected array $quickSearchField = ['content'];
|
||||
|
||||
#[GetRoute(authorize: 'query')]
|
||||
public function query(Request $request): JsonResponse
|
||||
{
|
||||
$params = $request->all();
|
||||
$pageSize = $params['pageSize'] ?? 10;
|
||||
$query = ForumCommentModel::query();
|
||||
$data = $this->buildSearch($params, $query)
|
||||
->paginate($pageSize)
|
||||
->toArray();
|
||||
return $this->success($data);
|
||||
}
|
||||
|
||||
#[PostRoute(authorize: 'create')]
|
||||
public function create(ForumCommentFormRequest $request): JsonResponse
|
||||
{
|
||||
ForumCommentModel::create($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[PutRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'update',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function update(int $id, ForumCommentFormRequest $request): JsonResponse
|
||||
{
|
||||
$model = ForumCommentModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('评论不存在');
|
||||
}
|
||||
$model->update($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[DeleteRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'delete',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function delete(int $id): JsonResponse
|
||||
{
|
||||
$model = ForumCommentModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('评论不存在');
|
||||
}
|
||||
$model->delete();
|
||||
return $this->success();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Modules\AnnoRoute\Attribute\DeleteRoute;
|
||||
use Modules\AnnoRoute\Attribute\GetRoute;
|
||||
use Modules\AnnoRoute\Attribute\PostRoute;
|
||||
use Modules\AnnoRoute\Attribute\PutRoute;
|
||||
use Modules\AnnoRoute\Attribute\RequestAttribute;
|
||||
use Modules\Common\Http\Controllers\BaseController;
|
||||
use Modules\Forum\Http\Requests\ForumPostFormRequest;
|
||||
use Modules\Forum\Models\ForumPostModel;
|
||||
|
||||
#[RequestAttribute('/forum/post', 'forum.post')]
|
||||
class ForumPostController extends BaseController
|
||||
{
|
||||
protected array $searchField = [
|
||||
'status' => '=',
|
||||
'is_hot' => '=',
|
||||
'is_top' => '=',
|
||||
'category_id' => '=',
|
||||
];
|
||||
|
||||
protected array $quickSearchField = ['title'];
|
||||
|
||||
#[GetRoute(authorize: 'query')]
|
||||
public function query(Request $request): JsonResponse
|
||||
{
|
||||
$params = $request->all();
|
||||
$pageSize = $params['pageSize'] ?? 10;
|
||||
$query = ForumPostModel::query();
|
||||
$data = $this->buildSearch($params, $query)
|
||||
->paginate($pageSize)
|
||||
->toArray();
|
||||
return $this->success($data);
|
||||
}
|
||||
|
||||
#[PostRoute(authorize: 'create')]
|
||||
public function create(ForumPostFormRequest $request): JsonResponse
|
||||
{
|
||||
ForumPostModel::create($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[PutRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'update',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function update(int $id, ForumPostFormRequest $request): JsonResponse
|
||||
{
|
||||
$model = ForumPostModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('帖子不存在');
|
||||
}
|
||||
$model->update($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[DeleteRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'delete',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function delete(int $id): JsonResponse
|
||||
{
|
||||
$model = ForumPostModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('帖子不存在');
|
||||
}
|
||||
$model->delete();
|
||||
return $this->success();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Modules\AnnoRoute\Attribute\DeleteRoute;
|
||||
use Modules\AnnoRoute\Attribute\GetRoute;
|
||||
use Modules\AnnoRoute\Attribute\RequestAttribute;
|
||||
use Modules\Common\Http\Controllers\BaseController;
|
||||
use Modules\Forum\Models\ForumPostFavoriteModel;
|
||||
|
||||
#[RequestAttribute('/forum/post-favorite', 'forum.post-favorite')]
|
||||
class ForumPostFavoriteController extends BaseController
|
||||
{
|
||||
protected array $searchField = [
|
||||
'post_id' => '=',
|
||||
];
|
||||
|
||||
#[GetRoute(authorize: 'query')]
|
||||
public function query(Request $request): JsonResponse
|
||||
{
|
||||
$params = $request->all();
|
||||
$pageSize = $params['pageSize'] ?? 10;
|
||||
$query = ForumPostFavoriteModel::query();
|
||||
$data = $this->buildSearch($params, $query)
|
||||
->paginate($pageSize)
|
||||
->toArray();
|
||||
return $this->success($data);
|
||||
}
|
||||
|
||||
#[DeleteRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'delete',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function delete(int $id): JsonResponse
|
||||
{
|
||||
$model = ForumPostFavoriteModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('收藏记录不存在');
|
||||
}
|
||||
$model->delete();
|
||||
return $this->success();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Modules\AnnoRoute\Attribute\DeleteRoute;
|
||||
use Modules\AnnoRoute\Attribute\GetRoute;
|
||||
use Modules\AnnoRoute\Attribute\RequestAttribute;
|
||||
use Modules\Common\Http\Controllers\BaseController;
|
||||
use Modules\Forum\Models\ForumPostLikeModel;
|
||||
|
||||
#[RequestAttribute('/forum/post-like', 'forum.post-like')]
|
||||
class ForumPostLikeController extends BaseController
|
||||
{
|
||||
protected array $searchField = [
|
||||
'post_id' => '=',
|
||||
];
|
||||
|
||||
#[GetRoute(authorize: 'query')]
|
||||
public function query(Request $request): JsonResponse
|
||||
{
|
||||
$params = $request->all();
|
||||
$pageSize = $params['pageSize'] ?? 10;
|
||||
$query = ForumPostLikeModel::query();
|
||||
$data = $this->buildSearch($params, $query)
|
||||
->paginate($pageSize)
|
||||
->toArray();
|
||||
return $this->success($data);
|
||||
}
|
||||
|
||||
#[DeleteRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'delete',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function delete(int $id): JsonResponse
|
||||
{
|
||||
$model = ForumPostLikeModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('点赞记录不存在');
|
||||
}
|
||||
$model->delete();
|
||||
return $this->success();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Modules\AnnoRoute\Attribute\DeleteRoute;
|
||||
use Modules\AnnoRoute\Attribute\GetRoute;
|
||||
use Modules\AnnoRoute\Attribute\PostRoute;
|
||||
use Modules\AnnoRoute\Attribute\PutRoute;
|
||||
use Modules\AnnoRoute\Attribute\RequestAttribute;
|
||||
use Modules\Common\Http\Controllers\BaseController;
|
||||
use Modules\Forum\Http\Requests\ForumSensitiveWordFormRequest;
|
||||
use Modules\Forum\Models\ForumSensitiveWordModel;
|
||||
|
||||
#[RequestAttribute('/forum/sensitive-word', 'forum.sensitive-word')]
|
||||
class ForumSensitiveWordController extends BaseController
|
||||
{
|
||||
protected array $searchField = [
|
||||
'status' => '=',
|
||||
'type' => '=',
|
||||
];
|
||||
|
||||
protected array $quickSearchField = ['word'];
|
||||
|
||||
#[GetRoute(authorize: 'query')]
|
||||
public function query(Request $request): JsonResponse
|
||||
{
|
||||
$params = $request->all();
|
||||
$pageSize = $params['pageSize'] ?? 10;
|
||||
$query = ForumSensitiveWordModel::query();
|
||||
$data = $this->buildSearch($params, $query)
|
||||
->paginate($pageSize)
|
||||
->toArray();
|
||||
return $this->success($data);
|
||||
}
|
||||
|
||||
#[PostRoute(authorize: 'create')]
|
||||
public function create(ForumSensitiveWordFormRequest $request): JsonResponse
|
||||
{
|
||||
ForumSensitiveWordModel::create($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[PutRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'update',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function update(int $id, ForumSensitiveWordFormRequest $request): JsonResponse
|
||||
{
|
||||
$model = ForumSensitiveWordModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('敏感词不存在');
|
||||
}
|
||||
$model->update($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[DeleteRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'delete',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function delete(int $id): JsonResponse
|
||||
{
|
||||
$model = ForumSensitiveWordModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('敏感词不存在');
|
||||
}
|
||||
$model->delete();
|
||||
return $this->success();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Http\Requests;
|
||||
|
||||
use Illuminate\Validation\Rule;
|
||||
use Modules\Common\Http\Requests\BaseFormRequest;
|
||||
|
||||
class ForumCategoryFormRequest extends BaseFormRequest
|
||||
{
|
||||
protected $stopOnFirstFailure = true;
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
if (!$this->isUpdate()) {
|
||||
return [
|
||||
'name' => 'required|max:50',
|
||||
'slug' => 'required|max:50|unique:forum_categories,slug',
|
||||
'parent_id' => 'nullable|integer',
|
||||
'description' => 'nullable|max:255',
|
||||
'icon' => 'nullable|max:255',
|
||||
'sort' => 'nullable|integer',
|
||||
'status' => 'nullable|integer|in:0,1',
|
||||
];
|
||||
}
|
||||
|
||||
$id = $this->route('id');
|
||||
return [
|
||||
'name' => 'required|max:50',
|
||||
'slug' => [
|
||||
'required',
|
||||
'max:50',
|
||||
Rule::unique('forum_categories', 'slug')->ignore($id),
|
||||
],
|
||||
'parent_id' => 'nullable|integer',
|
||||
'description' => 'nullable|max:255',
|
||||
'icon' => 'nullable|max:255',
|
||||
'sort' => 'nullable|integer',
|
||||
'status' => 'nullable|integer|in:0,1',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'name.required' => '分类名称不能为空',
|
||||
'slug.required' => '分类标识不能为空',
|
||||
'slug.unique' => '分类标识已存在',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Http\Requests;
|
||||
|
||||
use Modules\Common\Http\Requests\BaseFormRequest;
|
||||
|
||||
class ForumCommentFormRequest extends BaseFormRequest
|
||||
{
|
||||
protected $stopOnFirstFailure = true;
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'post_id' => 'required|integer',
|
||||
'user_id' => 'required|integer',
|
||||
'content' => 'required',
|
||||
'parent_id' => 'nullable|integer',
|
||||
'reply_to' => 'nullable|integer',
|
||||
'status' => 'nullable|integer|in:0,1',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'post_id.required' => '帖子ID不能为空',
|
||||
'user_id.required' => '评论用户不能为空',
|
||||
'content.required' => '评论内容不能为空',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Http\Requests;
|
||||
|
||||
use Modules\Common\Http\Requests\BaseFormRequest;
|
||||
|
||||
class ForumPostFormRequest extends BaseFormRequest
|
||||
{
|
||||
protected $stopOnFirstFailure = true;
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'title' => 'required|max:100',
|
||||
'content' => 'required',
|
||||
'category_id' => 'nullable|integer',
|
||||
'user_id' => 'required|integer',
|
||||
'images' => 'nullable|array',
|
||||
'is_hot' => 'nullable|integer|in:0,1',
|
||||
'is_top' => 'nullable|integer|in:0,1',
|
||||
'status' => 'nullable|integer|in:0,1,2',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'title.required' => '帖子标题不能为空',
|
||||
'content.required' => '帖子内容不能为空',
|
||||
'user_id.required' => '发布用户不能为空',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Http\Requests;
|
||||
|
||||
use Illuminate\Validation\Rule;
|
||||
use Modules\Common\Http\Requests\BaseFormRequest;
|
||||
|
||||
class ForumSensitiveWordFormRequest extends BaseFormRequest
|
||||
{
|
||||
protected $stopOnFirstFailure = true;
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
if (!$this->isUpdate()) {
|
||||
return [
|
||||
'word' => 'required|max:100|unique:forum_sensitive_words,word',
|
||||
'replacement' => 'nullable|max:100',
|
||||
'type' => 'nullable|integer|in:1,2',
|
||||
'status' => 'nullable|integer|in:0,1',
|
||||
];
|
||||
}
|
||||
|
||||
$id = $this->route('id');
|
||||
return [
|
||||
'word' => [
|
||||
'required',
|
||||
'max:100',
|
||||
Rule::unique('forum_sensitive_words', 'word')->ignore($id),
|
||||
],
|
||||
'replacement' => 'nullable|max:100',
|
||||
'type' => 'nullable|integer|in:1,2',
|
||||
'status' => 'nullable|integer|in:0,1',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'word.required' => '敏感词不能为空',
|
||||
'word.unique' => '敏感词已存在',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class ForumCategoryModel extends Model
|
||||
{
|
||||
protected $table = 'forum_categories';
|
||||
|
||||
protected $fillable = [
|
||||
'parent_id',
|
||||
'name',
|
||||
'slug',
|
||||
'description',
|
||||
'icon',
|
||||
'sort',
|
||||
'status',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'parent_id' => 'integer',
|
||||
'sort' => 'integer',
|
||||
'status' => 'integer',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class ForumCommentModel extends Model
|
||||
{
|
||||
protected $table = 'forum_comments';
|
||||
|
||||
protected $fillable = [
|
||||
'post_id',
|
||||
'user_id',
|
||||
'parent_id',
|
||||
'reply_to',
|
||||
'content',
|
||||
'like_count',
|
||||
'status',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'post_id' => 'integer',
|
||||
'user_id' => 'integer',
|
||||
'parent_id' => 'integer',
|
||||
'reply_to' => 'integer',
|
||||
'like_count' => 'integer',
|
||||
'status' => 'integer',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class ForumPostFavoriteModel extends Model
|
||||
{
|
||||
protected $table = 'forum_post_favorites';
|
||||
|
||||
public $timestamps = false;
|
||||
|
||||
protected $fillable = [
|
||||
'post_id',
|
||||
'user_id',
|
||||
'created_at',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'post_id' => 'integer',
|
||||
'user_id' => 'integer',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class ForumPostLikeModel extends Model
|
||||
{
|
||||
protected $table = 'forum_post_likes';
|
||||
|
||||
public $timestamps = false;
|
||||
|
||||
protected $fillable = [
|
||||
'post_id',
|
||||
'user_id',
|
||||
'created_at',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'post_id' => 'integer',
|
||||
'user_id' => 'integer',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class ForumPostModel extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $table = 'forum_posts';
|
||||
|
||||
protected $fillable = [
|
||||
'user_id',
|
||||
'category_id',
|
||||
'title',
|
||||
'content',
|
||||
'images',
|
||||
'view_count',
|
||||
'comment_count',
|
||||
'like_count',
|
||||
'favorite_count',
|
||||
'is_hot',
|
||||
'is_top',
|
||||
'status',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'user_id' => 'integer',
|
||||
'category_id' => 'integer',
|
||||
'images' => 'array',
|
||||
'view_count' => 'integer',
|
||||
'comment_count' => 'integer',
|
||||
'like_count' => 'integer',
|
||||
'favorite_count' => 'integer',
|
||||
'is_hot' => 'integer',
|
||||
'is_top' => 'integer',
|
||||
'status' => 'integer',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class ForumSensitiveWordModel extends Model
|
||||
{
|
||||
protected $table = 'forum_sensitive_words';
|
||||
|
||||
protected $fillable = [
|
||||
'word',
|
||||
'replacement',
|
||||
'type',
|
||||
'status',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'type' => 'integer',
|
||||
'status' => 'integer',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Forum\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Modules\AnnoRoute\AnnoRoute;
|
||||
|
||||
class ForumServiceProvider extends ServiceProvider
|
||||
{
|
||||
public function boot(AnnoRoute $annoRoute): void
|
||||
{
|
||||
$annoRoute->register(base_path('modules/Forum/Http/Controllers'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user