[英]Auto populate “Form::text” from “Form::model” after adding extra attribute(class) in Laravel
[英]Populate a form with a model object after redirecting in Laravel
我有一个运行良好的模型的基本 CRUD 结构。 现在我想重定向到 create 方法并使用预先存在的模型填充表单。 它可以通过用户选择一个 id 来工作,然后我会选择该模型并重定向到创建页面并填充表单。
这是我迄今为止尝试过的
$order = Orders::find($id);
$inventory = Inventory::where(['id' => $order->inventory_id])->first()->toArray();
return redirect()->route('backend.inventory.create', $inventory['bag_id'])->withInput($inventory);
在上面的例子中,它找到订单并选择与其相关的单个库存项目(我已经确认它肯定按预期选择了一个库存项目)并重定向到库存创建页面。 但是,当使用 ->withInput() 方法时,这似乎并没有像我预期的那样用数据填充我的表单。
如何使用重定向将数据传递到表单?
按照下面的要求添加表单代码。 这只是表单的一列,因为它是一个巨大的代码块
<div class="form-group row" id="item-name" v-if="type != '3'">
<label for="name" class="col-md-2 col-form-label text-md-right">Item Name</label>
<div class="col-md-6">
<input id="name" type="text" class="form-control" name="name" value="{{ old('name') }}" required>
@if ($errors->has('name'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('name') }}</strong>
</span>
@endif
</div>
</div>
你可以使用这个:
return Redirect::back()->withInput(Input::all());
如果您正在使用表单请求验证,这正是 Laravel 将您重定向回错误和给定输入的方式。
摘自\\Illuminate\\Foundation\\Validation\\ValidatesRequests :
return redirect()->to($this->getRedirectUrl())
->withInput($request->input())
->withErrors($errors, $this->errorBag());
尝试这个
<div class="form-group row" id="item-name" v-if="type != '3'">
<label for="name" class="col-md-2 col-form-label text-md-right">Item Name</label>
<div class="col-md-6">
<input id="name" type="text" class="form-control" name="name" value="{{ old('name') ?? $inventory['name'] }}" required>
@if ($errors->has('name'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('name') }}</strong>
</span>
@endif
</div>
</div>
{{ old('name') ?? ($inventory['name'] ?? '') }}
{{ old('name') ?? ($inventory['name'] ?? '') }}
如果旧数据存在,它将显示旧数据,否则来自 withInput 的$inventory->name
也是可选的,这就是为什么我把 ??
您可以使用compact()函数来创建包含变量及其值的数组。
$order = Orders::find($id);
$inventory = Inventory::where(['id' => $order->inventory_id])->first()->toArray();
return view('backend.inventory.create', compact('inventory'));
在您的视图页面中,您可以像这样使用它,
<input id="name" type="text" class="form-control" name="name" value="{{ $inventory['name'] }}" required>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.