Файловый менеджер - Редактировать - /home/clickysoft/public_html/app/Http/Controllers/Admin/SuppliersController.php
Назад
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Controllers\Traits\MediaUploadingTrait; use App\Http\Requests\MassDestroySupplierRequest; use App\Http\Requests\StoreSupplierRequest; use App\Http\Requests\UpdateSupplierRequest; use App\Models\Country; use App\Models\Organization; use App\Models\Supplier; use Gate; use Illuminate\Http\Request; use Spatie\MediaLibrary\MediaCollections\Models\Media; use Symfony\Component\HttpFoundation\Response; use Yajra\DataTables\Facades\DataTables; class SuppliersController extends Controller { use MediaUploadingTrait; public function index(Request $request) { abort_if(Gate::denies('supplier_access'), Response::HTTP_FORBIDDEN, '403 Forbidden'); if ($request->ajax()) { $query = Supplier::with(['organization', 'country'])->select(sprintf('%s.*', (new Supplier)->table)); $table = Datatables::of($query); $table->addColumn('placeholder', ' '); $table->addColumn('actions', ' '); $table->editColumn('actions', function ($row) { $viewGate = 'supplier_show'; $editGate = 'supplier_edit'; $deleteGate = 'supplier_delete'; $crudRoutePart = 'suppliers'; return view('partials.datatablesActions', compact( 'viewGate', 'editGate', 'deleteGate', 'crudRoutePart', 'row' )); }); $table->editColumn('id', function ($row) { return $row->id ? $row->id : ''; }); $table->addColumn('organization_name', function ($row) { return $row->organization ? $row->organization->name : ''; }); $table->editColumn('contact_name', function ($row) { return $row->contact_name ? $row->contact_name : ''; }); $table->editColumn('contact_email', function ($row) { return $row->contact_email ? $row->contact_email : ''; }); $table->editColumn('contact_number', function ($row) { return $row->contact_number ? $row->contact_number : ''; }); $table->editColumn('address_line_1', function ($row) { return $row->address_line_1 ? $row->address_line_1 : ''; }); $table->editColumn('address_line_2', function ($row) { return $row->address_line_2 ? $row->address_line_2 : ''; }); $table->editColumn('city', function ($row) { return $row->city ? $row->city : ''; }); $table->editColumn('state', function ($row) { return $row->state ? $row->state : ''; }); $table->editColumn('zip_code', function ($row) { return $row->zip_code ? $row->zip_code : ''; }); $table->addColumn('country_name', function ($row) { return $row->country ? $row->country->name : ''; }); $table->editColumn('url', function ($row) { return $row->url ? $row->url : ''; }); $table->editColumn('logo', function ($row) { if ($photo = $row->logo) { return sprintf( '<a href="%s" target="_blank"><img src="%s" width="50px" height="50px"></a>', $photo->url, $photo->thumbnail ); } return ''; }); $table->editColumn('status', function ($row) { return $row->status ? Supplier::STATUS_RADIO[$row->status] : ''; }); $table->rawColumns(['actions', 'placeholder', 'organization', 'country', 'logo']); return $table->make(true); } $organizations = Organization::get(); $countries = Country::get(); return view('admin.suppliers.index', compact('organizations', 'countries')); } public function create() { abort_if(Gate::denies('supplier_create'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $countries = Country::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); return view('admin.suppliers.create', compact('countries', 'organizations')); } public function store(StoreSupplierRequest $request) { $supplier = Supplier::create($request->all()); if ($request->input('logo', false)) { $supplier->addMedia(storage_path('tmp/uploads/' . basename($request->input('logo'))))->toMediaCollection('logo'); } if ($media = $request->input('ck-media', false)) { Media::whereIn('id', $media)->update(['model_id' => $supplier->id]); } return redirect()->route('admin.suppliers.index'); } public function edit(Supplier $supplier) { abort_if(Gate::denies('supplier_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $organizations = Organization::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $countries = Country::pluck('name', 'id')->prepend(trans('global.pleaseSelect'), ''); $supplier->load('organization', 'country'); return view('admin.suppliers.edit', compact('countries', 'organizations', 'supplier')); } public function update(UpdateSupplierRequest $request, Supplier $supplier) { $supplier->update($request->all()); if ($request->input('logo', false)) { if (! $supplier->logo || $request->input('logo') !== $supplier->logo->file_name) { if ($supplier->logo) { $supplier->logo->delete(); } $supplier->addMedia(storage_path('tmp/uploads/' . basename($request->input('logo'))))->toMediaCollection('logo'); } } elseif ($supplier->logo) { $supplier->logo->delete(); } return redirect()->route('admin.suppliers.index'); } public function show(Supplier $supplier) { abort_if(Gate::denies('supplier_show'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $supplier->load('organization', 'country'); return view('admin.suppliers.show', compact('supplier')); } public function destroy(Supplier $supplier) { abort_if(Gate::denies('supplier_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $supplier->delete(); return back(); } public function massDestroy(MassDestroySupplierRequest $request) { $suppliers = Supplier::find(request('ids')); foreach ($suppliers as $supplier) { $supplier->delete(); } return response(null, Response::HTTP_NO_CONTENT); } public function storeCKEditorImages(Request $request) { abort_if(Gate::denies('supplier_create') && Gate::denies('supplier_edit'), Response::HTTP_FORBIDDEN, '403 Forbidden'); $model = new Supplier(); $model->id = $request->input('crud_id', 0); $model->exists = true; $media = $model->addMediaFromRequest('upload')->toMediaCollection('ck-media'); return response()->json(['id' => $media->id, 'url' => $media->getUrl()], Response::HTTP_CREATED); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка