ldc-com-app-bo/app/Http/Controllers/Bo/ContactController.php

71 lines
2 KiB
PHP
Raw Normal View History

<?php
namespace App\Http\Controllers\Bo;
use App\Http\Controllers\Controller;
2023-08-30 11:25:04 +02:00
use App\Http\Requests\Bo\FilterCustomerRequest;
use App\Models\AppUser;
use App\Models\Contact;
use App\Models\Formulary;
2023-08-30 11:25:04 +02:00
use Illuminate\Database\Eloquent\Builder;
class ContactController extends Controller
{
/**
* Display a listing of the resource.
*
2023-08-30 11:25:04 +02:00
* @param \App\Http\Requests\Bo\FilterCustomerRequest $request
* @return \Illuminate\View\View
*/
public function index(FilterCustomerRequest $request): \Illuminate\View\View
{
2023-08-29 09:39:34 +02:00
/** @var \Illuminate\Database\Eloquent\Builder $query */
$query = Contact::query();
2023-08-30 11:25:04 +02:00
$query->with('appUser');
if ($request->search) {
$this->searchQuery(
2023-08-29 09:39:34 +02:00
$query,
$request->search,
null,
'firstname',
'lastname',
'email',
);
}
$searchFields = \implode(',', [trans('Nom'), trans('Prénom'), trans('Email')]);
/** Sort columns with a query */
2023-08-29 09:39:34 +02:00
$this->sortQuery($query);
2023-08-30 11:25:04 +02:00
if ($request->user) {
$query->whereHas('appUser', function (Builder $q) use ($request) {
$q->where('id', $request->user);
});
}
2023-08-29 09:39:34 +02:00
$contactModelList = $this->paginate($query);
$appUsers = AppUser::query()->select(['id', 'lastname', 'firstname'])->orderBy('lastname')->get();
2023-08-30 11:25:04 +02:00
return view('bo.pages.contacts.index', compact('contactModelList', 'searchFields', 'appUsers'));
}
/**
* Display the specified resource.
*
* @param \App\Models\Contact $contact
* @return \Illuminate\View\View
*/
public function show(Contact $contact): \Illuminate\View\View
{
2023-08-30 11:25:04 +02:00
$contact->load('appUser.directories');
$fomularies = Formulary::all()->keyBy('name');
return view('bo.pages.contacts.show', [
'contactModel' => $contact,
'fomularies' => $fomularies
]);
}
}