我是 Laravel 的新手,遇到了一个我无法解决的问题。希望得到提示。
我构建了一个应用程序,它检索票证列表,这些票证显示为带有复选框的项目列表。当我选择多个复选框之一时,我想根据条件进一步处理所选项目。如果条件不满足,我想在每个未进行的项目旁边显示一个错误。
在我的控制器中,我将条件放在 try and catch 中:
public function generate (Request $request) {
$ids = $request-input('ids');
foreach($ids ad $id) {
try{
$getEmail = DB::table('users')
->where('user_id', '=', $id)
->first();
$email = $getEmail->address;
$message = 'No organisation found for' .$name;
}
catch(\Exception $e){
return redirect('/users')->with("error"), $message)
}
在刀片中,我有:
<form action='action' method ='POST'>
@csrf
@foreach ($users as $user)
<div>{{$user->name}}</div>
@if (session('error'))
<div> {{session('error')}} </div>
@endif
@endforeach
<button type=submit>Submit</button>
</form>
问题是,如果没有电子邮件(在此示例中,我简化了代码只是为了有个想法)我会在每个名称前收到错误消息。但。当我从5个项目中选择3个提交时,第一个正确的会通过,第二个,如果有错误会用try和catch破坏代码,即使第三个没问题,它也会停止并显示错误在每一行的前面,甚至是我没有选择提交的那一行。它会在每个前面显示相同的第一个错误名称。我想到了缓存错误并在它将遍历所选项目后显示它的想法,首先能够在不破坏代码的情况下传递所有可用的,其次-我希望仅在不显示的名称前面显示错误没有电子邮件。但我不知道从哪里开始。我会很感激任何帮助。