✏️ 编辑:NewspaperController.php
路径:
/home/boguraj1/.trash/app.1/Http/Controllers/Admin/NewspaperController.php
大小:2.71 KB · 修改:2026-06-25 22:26:28 · 权限:0644 · 可写
← 返回目录
👁 查看
⬇ 下载
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Models\Newspaper; use Illuminate\Http\Request; class NewspaperController extends Controller { public function index() { $newspapers = Newspaper::withCount('pages') ->orderByDesc('publish_date') ->paginate(15); return view('admin.newspapers.index', compact('newspapers')); } public function create() { return view('admin.newspapers.create'); } public function store(Request $request) { $data = $request->validate([ 'publish_date' => 'required|date|unique:newspapers,publish_date', 'edition_name' => 'nullable|string|max:255', 'volume' => 'nullable|string|max:100', 'issue_number' => 'nullable|string|max:100', 'status' => 'required|in:draft,published', 'description' => 'nullable|string', ]); $newspaper = Newspaper::create($data); return redirect()->route('admin.newspapers.pages', $newspaper) ->with('success', 'Newspaper edition created. Now upload pages.'); } public function edit(Newspaper $newspaper) { return view('admin.newspapers.edit', compact('newspaper')); } public function update(Request $request, Newspaper $newspaper) { $data = $request->validate([ 'publish_date' => 'required|date|unique:newspapers,publish_date,' . $newspaper->id, 'edition_name' => 'nullable|string|max:255', 'volume' => 'nullable|string|max:100', 'issue_number' => 'nullable|string|max:100', 'status' => 'required|in:draft,published', 'description' => 'nullable|string', ]); $newspaper->update($data); return redirect()->route('admin.newspapers.index') ->with('success', 'Newspaper updated successfully.'); } public function destroy(Newspaper $newspaper) { foreach ($newspaper->pages as $page) { if (\Storage::disk('public')->exists($page->image_path)) { \Storage::disk('public')->delete($page->image_path); } if ($page->thumbnail_path && \Storage::disk('public')->exists($page->thumbnail_path)) { \Storage::disk('public')->delete($page->thumbnail_path); } } $newspaper->delete(); return redirect()->route('admin.newspapers.index') ->with('success', 'Newspaper deleted.'); } public function pages(Newspaper $newspaper) { $newspaper->load(['pages' => fn($q) => $q->orderBy('sort_order')->orderBy('page_number')]); return view('admin.newspapers.pages', compact('newspaper')); } }
💾 保存
取消
保存为 UTF-8,换行统一为 LF