42 lines
1.3 KiB
PHP
42 lines
1.3 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
namespace App\Http\Controllers\Site;
|
||
|
|
|
||
|
|
use App\Http\Controllers\Controller;
|
||
|
|
use App\Models\FeedbackEntry;
|
||
|
|
use Illuminate\Http\RedirectResponse;
|
||
|
|
use Illuminate\Http\Request;
|
||
|
|
|
||
|
|
class FeedbackController extends Controller
|
||
|
|
{
|
||
|
|
public function store(Request $request): RedirectResponse
|
||
|
|
{
|
||
|
|
$validated = $request->validate([
|
||
|
|
'feedback_type' => ['required', 'in:tool,model,news,guide,other'],
|
||
|
|
'title' => ['required', 'string', 'max:180'],
|
||
|
|
'description' => ['required', 'string', 'max:4000'],
|
||
|
|
'contact' => ['nullable', 'string', 'max:160'],
|
||
|
|
], [
|
||
|
|
'feedback_type.required' => '请选择反馈类型',
|
||
|
|
'title.required' => '请填写标题',
|
||
|
|
'description.required' => '请填写详细说明',
|
||
|
|
]);
|
||
|
|
|
||
|
|
FeedbackEntry::query()->create([
|
||
|
|
'feedback_type' => $validated['feedback_type'],
|
||
|
|
'title' => $validated['title'],
|
||
|
|
'description' => $validated['description'],
|
||
|
|
'contact' => $validated['contact'] ?? null,
|
||
|
|
'status' => 'new',
|
||
|
|
'ip_address' => $request->ip(),
|
||
|
|
]);
|
||
|
|
|
||
|
|
return redirect()
|
||
|
|
->back()
|
||
|
|
->with('status', '反馈提交成功,感谢你的建议');
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|