Php 提交数据Laravel后的自定义错误消息
我已经问过这个问题了,但是这次有一些不同。上次问题解决得很好,所以现在我只需要一只手来告诉我如何更改代码,使其正常工作 我改变的是,我已经实现了一种方法,可以一次成功地出借多本书。现在我有了一个完美工作的数组 这就是我的观点,想象一下,对于你想借出的每一本书,代码是3倍:Php 提交数据Laravel后的自定义错误消息,php,html,laravel,laravel-5,Php,Html,Laravel,Laravel 5,我已经问过这个问题了,但是这次有一些不同。上次问题解决得很好,所以现在我只需要一只手来告诉我如何更改代码,使其正常工作 我改变的是,我已经实现了一种方法,可以一次成功地出借多本书。现在我有了一个完美工作的数组 这就是我的观点,想象一下,对于你想借出的每一本书,代码是3倍: <div class="form-group row"> <label for="serialnumber" class="col-md-4 col-form-label text-md-right
<div class="form-group row">
<label for="serialnumber" class="col-md-4 col-form-label text-md-right">{{ __('Gerät 1 (serialnumber) :') }}</label>
<div class="col-md-6">
<input id="serialnumber" type="text" class="form-control{{ $errors->has('serialnumber') ? ' is-invalid' : '' }}" name="serialnumber[]" value="{{ old('serialnumber') }}" required @if (Session::has('autofocus')) autofocus @endif>
@if ($errors->any())
<div class="alert alert-danger">The book with this serialnumber is already lend by antoher person
<ul>
</ul>
</div>
@endif
</div>
</div>
最后是我的Request.php页面:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class BookRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'serialnumber[0]' => 'required|unique:borrowed,serialnumber,null',
'serialnumber[1]' => 'required|unique:borrowed,serialnumber,null',
'serialnumber[2]' => 'required|unique:borrowed,serialnumber,null',
'ma_id' => 'required',
];
}
public function messages()
{
return [
'serialnumber' => 'Seems like you have added the same book more than once!',
];
}
}
更改您的视图:
@if(!empty(old('serialnumber')))
@foreach(old('serialnumber') as $i=>$value)
<input id="serialnumber" type="text" class="form-control{{ $errors->has('serialnumber') ? ' is-invalid' : '' }}" name="serialnumber[]" value="{{ old('serialnumber.'.$i) }}" required @if (Session::has('autofocus')) autofocus @endif>
@endforeach
@endif
或
及
这三个序列号是固定的吗?你的意思是什么?你一直只有3个序列号吗?还是可以增加金额。如果是这样,你每次都必须调整规则和控制器。你最多可以输入3个序列号,但不能超过3个。我在哪里实现“$i”呢?因为它说它未定义,我不知道在哪里定义它:o谢谢你的详细回答@Devi检查刀片文件中的旧值,如@foreach(旧('serialnumber')为$i=>$value)是否有引号错误?在输入字段中,当我实现if和foreach时,我的输入字段消失。这仅适用于出现错误时的旧值,否则使用简单的html输入
@if(!empty(old('serialnumber')))
@foreach(old('serialnumber') as $i=>$value)
<input id="serialnumber" type="text" class="form-control{{ $errors->has('serialnumber') ? ' is-invalid' : '' }}" name="serialnumber[]" value="{{ old('serialnumber.'.$i) }}" required @if (Session::has('autofocus')) autofocus @endif>
@endforeach
@endif
public function rules(){
return [
'serialnumber.0' => 'required|unique:borrowed,serialnumber,null',
'serialnumber.1' => 'required|unique:borrowed,serialnumber,null',
'serialnumber.2' => 'required|unique:borrowed,serialnumber,null',
'ma_id' => 'required',
];
}
public function rules(){
return [
'serialnumber.*' => 'required|unique:borrowed,serialnumber,null',
'ma_id' => 'required',
];
}
public function messages()
{
return [
'serialnumber.*' => 'Seems like you have added the same book more than once!',
];
}