У меня есть поисковая форма с тремя полями: Отдел, Роль и Местоположение, которому я звоню Поиск контактов, и она должна быть на нескольких страницах.
Вот изображение:
В этом смысле я включил его в Blade-модуль, чтобы я мог просто повторно использовать его там, где он мне нужен.
Все значения для нихполя доступны в таблице «Пользователи», так как я могу сделать следующее:
SELECT DISTINCT department, role, location FROM users
Это даст мне все уникальные роли, отделы и местоположения.
Однако для заполнения этой формы через базу данных мне придется каждый раз передавать данные в родительское представление?
Например, я думал что-то вроде этого.
В контроллере
$formFields = User::distinct()->get(['department', 'role', 'location']);
В поле зрения
@foreach(formFields as $field)
$field->department
...
...
@endforeach
Единственная проблема, конечно, мне придется отправить этоданные для каждого представления, которое использует форму?
В качестве альтернативы, я могу просто сделать SearchController, который использует модель пользователя to подавать в него?
Можно ли таким образом подать данные в частичное представление?
Обновление
Представление композиторов, кажется, является подходящим способом, однакоЯ не чувствую, что это действительно:
view()->composer('layouts.quick-search', function($view) {
$view->with('departments', \App\User::distinct()->get(['department']),
'locations', \App\User::distinct()->get(['location']),
'roles', \App\User::distinct()->get(['role']));
});
Поскольку это не похоже на несколько переменных.
Я также попробовал следующее:
<select class="form-control transparant" id="department" name="department">
@foreach($departments as $department)
<option value="{{ $department }}">{{ $department }}</option>
@endforeach
</select>
Но это заполнило поле выбора:
{"department":"Digital","profile":null}
Это явно массив, но означает ли это, что мне придется JSON-декодировать это?