PATH:
home
/
cardxfeb
/
public_html
/
app
/
Http
/
Controllers
/
Editing: FeatureController.php
<?php namespace App\Http\Controllers; use App\Http\Requests\UpdateFeatureRequest; use App\Models\Feature; use App\Repositories\featureRepository; use Illuminate\Contracts\Foundation\Application; use Illuminate\Contracts\View\Factory; use Illuminate\Contracts\View\View; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Routing\Redirector; use Laracasts\Flash\Flash; use Spatie\MediaLibrary\MediaCollections\Exceptions\FileDoesNotExist; use Spatie\MediaLibrary\MediaCollections\Exceptions\FileIsTooBig; use Illuminate\Support\Str; class FeatureController extends AppBaseController { private $featureRepository; public function __construct(featureRepository $featureRepository) { $this->featureRepository = $featureRepository; } public function index(): \Illuminate\View\View { return view('settings.features.index'); } public function show($id) { // } public function edit(Feature $feature): \Illuminate\View\View { return view('settings.features.edit', compact('feature')); } public function new(): \Illuminate\View\View { return view('settings.features.new'); } public function update(UpdateFeatureRequest $request, $id): RedirectResponse { $input = $request->all(); $this->featureRepository->update($input, $id); Flash::success(__('messages.flash.feature_update')); return redirect(route('features.index')); } public function store(UpdateFeatureRequest $request): RedirectResponse { $input = $request->all(); // Get current language from logged-in user $language = getLogInUser()->language; $input['language'] = $language; // Validate unique slug for the language $this->validate($request, [ 'slug' => 'required|unique:features,slug,NULL,id,language,' . $language, ]); // Generate slug if not provided if (empty($input['slug'])) { $count = Feature::where('language', $language)->count(); $input['slug'] = $language . '.features.' . ($count + 1); } else { // Ensure slug format if (!Str::startsWith($input['slug'], $language . '.features.')) { $input['slug'] = $language . '.features.' . Str::slug($input['slug']); } } $this->featureRepository->update($input, null); Flash::success(__('messages.flash.feature_update')); return redirect(route('features.index')); } }
SAVE
CANCEL