首页 > 解决方案 > laravel 7编辑旧值未选择表单

问题描述

您好,我将此代码用于编辑表单中的选择类别,但它不起作用!这条线不起作用

<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');
}

标签: laravellaravel-5laravel-6laravel-7

解决方案


你需要这样做

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

但是假设如果您有所有类别和一个类别也有编辑记录,这意味着您已经来编辑具有单个类别的页面,并且您希望默认选择该类别。

<option value="{{ $category->id }}" @isset($cat) {{ $cat->id == $category->id ? 'selected' : '' }} @endisset >

在这种情况下$cat,是一个用于编辑的类别,并且$category是您在下拉列表中的所有类别中循环。

更新代码

 <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>

推荐阅读