58 lines
1.6 KiB
PHP
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.'));
|
|
});
|
|
}
|
|
}
|