如何解决@error 未显示 Laravel 中的错误
在 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',]);
}
,
一种方法是通过 php artisan make:request UpdateAthleteRequest
创建表单请求验证,该文件将位于 app\Http\Requests
文件夹中,并将您的规则添加到 rules() 方法。
public function rules()
{
return [
'name' =>'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',]);`
`$validation = Validator::make($data,$validateData)->validate();`
`$info->update($validation);`
`session()->flash('updated','Post successfully updated.');`
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。