lk.zachem.info/app/Modules/Admin/Http/Controllers/AdminDocsController.php
2025-04-21 18:46:13 +08:00

73 lines
1.8 KiB
PHP

<?php
namespace Modules\Admin\Http\Controllers;
use Modules\Docs\Models\Document;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class AdminDocsController extends Controller
{
public function index()
{
$docs = Document::orderBy('name')->get();
return view('admin::docs.index', [
'docs' => $docs
]);
}
public function store(Request $request)
{
$validated = $request->validate([
'name' => 'required',
'description' => '',
'file' => 'required|mimes:pdf,zip'
]);
$path = $request->file('file')->store('docs', ['disk' => 'local']);
$request['path'] = $path;
$document = Document::create(
$request->only(['name', 'description', 'path'])
);
return to_route('admin.docs');
}
public function edit(Document $document)
{
return view('admin::docs.edit', [
'document' => $document
]);
}
public function update(Request $request, Document $document)
{
$validated = $request->validate([
'name' => 'required',
'description' => '',
'file' => 'mimes:pdf,zip'
]);
if ($request->file('file'))
{
$path = $request->file('file')->store('docs', ['disk' => 'local']);
$request['path'] = $path;
}
else
{
$reuqest['path'] = $document->path;
}
$document = $document->update(
$request->only(['name', 'description', 'path'])
);
return to_route('admin.docs');
}
public function delete(Document $document)
{
$document->delete();
return to_route('admin.docs');
}
}