Сначала я должен объяснить вам, чего я пытаюсь достичь.Я пытаюсь вернуть все $categories
в представление, которое используется для редактирования изображений, чтобы я мог поместить эти $categories
в элемент выбора, НО имеет категорию $, к которой это изображение относится вверху.Я пытался сделать это несколькими разными способами, и каждый из них вызывает у меня довольно много головных болей.Позвольте мне привести пример.
Моя основная проблема заключается в том, что мне нужно, чтобы первый элемент select был текущей категорией $ изображения, чтобы, если пользователь не выбрал другой элемент, категория $изображение не изменится.
Вот как прошла моя предыдущая попытка:
- Я сделал запрос, который получает все категории, кроме той, которая имеет $ image-> category_id.
- Затем я сделал другой запрос, который возвращает мне только категорию с $ image-> category_id (я знаю, что этот запрос почти бесполезен, но мне также нужно было имя этой категории)
- Я отправляю эти переменныедля представления
- Я использовал переменные в представлении
Мой код был примерно таким (я вырезал некоторый код, который не имеет отношения к Иссеу):
public function updateArtwork($id){
$image = Image::where('id', $id)->first();
$imageCategoryId = $image->category_id;
$categories = Category::where('id', '!=', $imageCategoryId)->orderBy('created_at', 'desc')->get();
$imageCategory = Category::where('id', $imageCategoryId)->first();
$imageCategoryName = $imageCategory->name;
return view('updateArtwork', ['image' => $image, 'categories' => $categories, 'imageCategoryId' => $imageCategoryId, 'imageCategoryName' => $imageCategoryName]);
}
А потом я использовал это в виде:
<div class="form-group">
<label class='label required' for="artwork-category">Category</label>
<select class='category-select' name='artwork-category' value='{{ Request::old('artwork-category') }}'>
<option value='{{ $imageCategoryId }}'>{{ $imageCategoryName }}</option>
@foreach($categories as $category)
<option value='{{$category->id}}'>{{$category->name}}</option>
@endforeach
</select>
</div>
У меня так много проблем с тем, как я это сделал.Прежде всего, я делаю 2 запроса, чтобы проверить категорию, к которой принадлежит изображение, и категории, к которым оно не относится.Затем я должен отправить множество переменных в представление и затем использовать их в представлении.Мне также нужно проверить, существуют ли эти переменные, поскольку, если изображение не имеет категории, мой код становится беспорядочным и тому подобное.
Вот почему я задаюсь вопросом, смогу ли я решить все эти проблемыпросто используя красноречие.Можно ли сделать это:
- Получить все категории в порядке убывания.
- Затем поместите категорию с определенным идентификатором в начале коллекции (чтобы это былопервый элемент, который должен появиться в поле выбора), но все еще следует в порядке убывания после него.