在 Blade 中,不显示单个
@error
,但在 @foreach ($errors->all() as $error)
中显示所有错误。
这是验证
public function updateAthlete(){
$pass = Hash::make($this->password);
$info = Athlete::find($this->athlete_id);
if($this->profile_photo_path){
File::delete('storage/' . $this->filePath);
$this->filePath = $this->profile_photo_path->store('AthletesProfile', 'public');
}
$this->validate([
'name' =>'required|max:70|min:3',
'name_fa' =>'required|max:70|min:3',
'name_pa' =>'required|max:70|min:3',
]);
$info->update([
'name' => $this->name,
'name_fa' => $this->name_fa,
'name_pa' => $this->name_pa,
]);
session()->flash('updated', 'Post successfully updated.');
}
这就是表格
<div class="form-group form-group-default">
<label>Name in Farsi</label>
<input type="text" class="form-control" dir="RTL" wire:model="name_fa">
@error('name_fa') <span class="error" style="color:red">{{ $message }}</span> @enderror
</div>
它没有在控制台中显示任何错误,或者它与样式无关
你不能像这样使用验证功能。
您需要传递一个 Request 实例才能使其工作:
public function updateAthlete(Request $request)
{
// .....
$request->validate([
'name' =>'required|max:70|min:3',
'name_fa' =>'required|max:70|min:3',
'name_pa' =>'required|max:70|min:3',
]);
// or :
$this->validate($request, [
'name' =>'required|max:70|min:3',
'name_fa' =>'required|max:70|min:3',
'name_pa' =>'required|max:70|min:3',
]);
}
实现此目的的一种方法是通过
php artisan make:request UpdateAthleteRequest
创建表单请求验证,该文件将位于 app\Http\Requests
文件夹中,并将您的规则添加到 Rules() 方法中。
public function rules()
{
return [
'name' =>'required|max:70|min:3',
'name_fa' =>'required|max:70|min:3',
'name_pa' =>'required|max:70|min:3',
];
}
在您的控制器中,使用该文件并:
public function updateAthlete(UpdateAthleteRequest $request){
$pass = Hash::make($this->password);
$info = Athlete::find($this->athlete_id);
if($this->profile_photo_path){
File::delete('storage/' . $this->filePath);
$this->filePath = $this->profile_photo_path->store('AthletesProfile', 'public');
}
$info->update($request->validated());
session()->flash('updated', 'Post successfully updated.');
}
完成后您必须重定向到视图文件。就目前而言,您的访问者在更新数据后将看到一个空白页面。
`$data = array_merge($data, [
'name' => $this->name,
'name_fa' => $this->name_fa,
'name_pa' => $this->name_pa,
]);`
`$validateData = array_merge($validateData, [
'name' =>'required|max:70|min:3',
'name_fa' =>'required|max:70|min:3',
'name_pa' =>'required|max:70|min:3',
]);`
`$validation = Validator::make($data, $validateData)->validate();`
`$info->update($validation);`
`session()->flash('updated', 'Post successfully updated.');`