0

我是 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破坏代码,即使第三个没问题,它也会停止并显示错误在每一行的前面,甚至是我没有选择提交的那一行。它会在每个前面显示相同的第一个错误名称。我想到了缓存错误并在它将遍历所选项目后显示它的想法,首先能够在不破坏代码的情况下传递所有可用的,其次-我希望仅在不显示的名称前面显示错误没有电子邮件。但我不知道从哪里开始。我会很感激任何帮助。

4

0 回答 0