✏️ 编辑:PageController.php
路径:
/home/boguraj1/.trash/app.1/Http/Controllers/Admin/PageController.php
大小:3.23 KB · 修改:2026-06-25 22:26:40 · 权限:0644 · 可写
← 返回目录
👁 查看
⬇ 下载
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Models\Newspaper; use App\Models\NewspaperPage; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; use Intervention\Image\Facades\Image; class PageController extends Controller { public function store(Request $request, Newspaper $newspaper) { $request->validate([ 'images' => 'required|array|min:1', 'images.*' => 'required|image|mimes:jpg,jpeg,png,webp|max:20480', ]); $startOrder = $newspaper->pages()->max('sort_order') ?? 0; $pageNumber = $newspaper->pages()->max('page_number') ?? 0; foreach ($request->file('images') as $index => $file) { $pageNumber++; $startOrder++; $dir = 'newspapers/' . $newspaper->publish_date->format('Y-m-d'); $filename = 'page_' . $pageNumber . '_' . uniqid() . '.' . $file->getClientOriginalExtension(); $path = $file->storeAs($dir, $filename, 'public'); $thumbFilename = 'thumb_' . $filename; $thumbPath = $dir . '/' . $thumbFilename; try { $img = Image::make($file)->resize(300, null, function ($c) { $c->aspectRatio(); $c->upsize(); }); Storage::disk('public')->put($thumbPath, (string) $img->encode()); } catch (\Exception $e) { $thumbPath = null; } NewspaperPage::create([ 'newspaper_id' => $newspaper->id, 'page_number' => $pageNumber, 'title' => $request->input("titles.{$index}"), 'image_path' => $path, 'thumbnail_path' => $thumbPath, 'sort_order' => $startOrder, ]); } return redirect()->route('admin.newspapers.pages', $newspaper) ->with('success', count($request->file('images')) . ' page(s) uploaded successfully.'); } public function destroy(NewspaperPage $page) { $newspaper = $page->newspaper; 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); } $page->delete(); return redirect()->route('admin.newspapers.pages', $newspaper) ->with('success', 'Page deleted.'); } public function reorder(Request $request) { $request->validate(['pages' => 'required|array']); foreach ($request->pages as $order => $pageId) { NewspaperPage::where('id', $pageId)->update(['sort_order' => $order + 1]); } return response()->json(['success' => true]); } public function update(Request $request, NewspaperPage $page) { $data = $request->validate([ 'title' => 'nullable|string|max:255', 'page_number' => 'required|integer|min:1', ]); $page->update($data); return redirect()->route('admin.newspapers.pages', $page->newspaper) ->with('success', 'Page updated.'); } }
💾 保存
取消
保存为 UTF-8,换行统一为 LF