校园论坛

This commit is contained in:
liu
2026-05-31 03:47:57 +08:00
parent a1c6ecf2b9
commit 86be1c230e
47 changed files with 1892 additions and 0 deletions
@@ -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' => '敏感词已存在',
];
}
}