laravel 7 редактировать старое значение не выбрано в форме - PullRequest
1 голос
/ 30 мая 2020

привет, я использую этот код для выбора категории в форме редактирования, и это не работает! эта строка не работает

<option value="{{$category->id}}" {{ old('parent')  ? 'selected' : '' }} >

и используйте это, но два кода не работают!

 {{ in_array($category->id ,$category->child()->pluck('id')->toArray()) ? 'selected': ''}}

мой код

 <option value="0"{{$category->parent == '0' ? 'selected': ''}}>دسته اصلی</option>
@foreach(\App\Category::all() as $category)
<option value="{{$category->id}}"  {{ in_array($category->id ,$category->child()->pluck('id')->toArray()) ? 'selected': ''}}>
 @if($category->parent== 0)
 {{$category->name}}
 @else
-- {{$category->name}}
 @endif
</option>
@endforeach

и моя категория модели это

  public function child()
{
    return $this->hasMany(Category::class, 'parent', 'id');
}

public function get_parent()
{
    return $this->hasOne(Category::class,'id','parent');
}

1 Ответ

1 голос
/ 30 мая 2020

Вам нужно сделать это так

<option value="{{ $category->id }}" {{ old('parent') == $category->id ? 'selected' : '' }} >

Но предположим, что если у вас есть все категории и категория с записью редактирования, это означает, что вы пришли на страницу редактирования с одной категорией, и вы хотите, чтобы она была выбрана по умолчанию. раскрывающийся список.

ОБНОВЛЕННЫЙ КОД

 <select name="parent" id="parent">
     <option value="0"{{$category->parent == '0' ? 'selected': ''}}>دسته اصلی</option>
     @foreach(\App\Category::all() as $category_loop)
        <option value="{{$category->id}}"
          @isset($category) {{ $category->parent == $category_loop->id ? 'selected' : '' }} @endisset>
          @if($category_loop->parent== 0)
             {{$category_loop->name}}
          @else
          -- {{$category_loop->name}}
          @endif
        </option>
     @endforeach
 </select>
...