ldc-dam/app/Http/Controllers/BrandController.php
2026-06-04 17:17:38 +02:00

58 lines
1.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Marque;
use App\Http\Requests\Bo\UpdateBrandUserRequest;
use App\Models\User;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Gate;
class BrandController extends Controller
{
/**
* Create the controller instance.
*/
public function __construct()
{
$this->authorizeResource(Marque::class);
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$brands = Marque::query()->orderBy('libMarq')->get();
return view('brands.index')->with([
'brands' => $brands
]);
}
public function editUsers(Marque $brand)
{
Gate::authorize('updateUsers', Marque::class);
return view('brands.edit-relations')->with([
'brand' => $brand,
'brands' => Marque::all(),
'userModels' => User::all(),
]);
}
public function updateUsers(UpdateBrandUserRequest $request, Marque $brand)
{
Gate::authorize('updateUsers', Marque::class);
return DB::transaction(function () use ($request, $brand) {
if ($request->validated('users')) {
$brand->users()->sync($request->validated('users'));
return redirect()->route('brands.editUsers', ['brand' => $brand])
->with('success', __('Les utilisateurs ont bien été mis à jour'));
}
return redirect()->back()->with('error', __('Une erreur est survenue. Veuillez réessayer ultérieurement.'));
});
}
}