如何使旧值选择在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();