Как я могу установить значение по умолчанию Laravel <select>элемент? - PullRequest
1 голос
/ 18 января 2020

Я хочу получить значения базы данных в имени категории и показать значение по умолчанию при выборе. Это мой контроллер для моего вида редактирования.

У меня есть таблица category_product.

category_product

<div class="col-md-4">
    <div class="form-group">
        <label for="category">category</label>
        <select class="form-control" name="category" id="category">
            @foreach($categories as $category)
                <option value="{{ $category->id }}" {{ $product->categories()->category_id == $category->id ? 'selected' : '' }}>{{ $category->name }}</option>
            @endforeach
        </select>
    </div>
</div>

ProductController. php

public function edit(Product $product)
{
    $categories = Category::all();
    return view('Admin.products.edit', compact('product', 'categories'));
}

Product. php

public function categories()
{
    return $this->belongsToMany(Category::class);
}

Я получаю эту ошибку.

Неопределенное свойство: Illuminate \ Database \ Eloquent \ Relations \ BelongsToMany :: $ category_id

1 Ответ

0 голосов
/ 18 января 2020

Вам нужно добавить значение по умолчанию в теге выбора выше foreach() l oop.

<div class="col-md-4">
    <div class="form-group">
        <label for="category">category</label>
        <select class="form-control" name="category" id="category">
            <option value="xyz">xyz</option> /* set default option value */
            @foreach($categories as $category)
                <option value="{{ $category->id }}" {{$category->id == $category->id ? 'selected' : '' }}>{{ $category->name }}</option>
            @endforeach
        </select>
    </div>
</div>

Если вы хотите выбрать название категории, то вам нужно сопоставить категорию в наборе продуктов. (если у вас есть catetory_id в таблице продуктов)

 <select class="form-control" name="category" id="category">

      @foreach($categories as $category)
           <option value="{{ $category->id }}" {{$product->catetory_id == $category->id ? 'selected' : '' }}>{{ $category->name }}</option>
      @endforeach
 </select>
...