选择旧值与选择输入在laravel 8刀片



如何使旧值选择在Laravel 8刀片与选择输入在编辑表单....我试过这种方式,但没有工作:

<select name="category" id="category" class=" @error('category') border-red-500 @enderror rounded-md shadow-sm mt-1 block w-full">
@foreach($categories as $category)
<option value="{{$category->id}}" {{ old('category', $category->id) ? 'selected' : '' }}>{{ $category->name }}</option>
@endforeach
</select>

,这是控制器内部的内容:

public function edit(Product $product)
{

$categories = Category::all();
return view('dashboard.products.edit', compact('categories', 'product'));
}

我认为你的产品应该有一个category_id,所以在循环中你也需要检查$product->category_id === $category->id

@foreach($categories as $category)
<option value="{{$category->id}}" {{ old('category', $category->id) || $product->category_id === $category->id ? 'selected' : '' }}>{{ $category->name }}</option>
@endforeach

基于edit()方法中的代码,old()不能工作。因为没有旧值,因为你的代码只是返回一个视图。如果你需要使用那个函数,那么你需要用这样的输入重定向return redirect()->back()->withInput();

最新更新