【问题标题】:Laravel Nova Actions Multiple messagesLaravel Nova Actions 多条消息
【发布时间】:2021-12-16 18:50:38
【问题描述】:

我可以在论坛中找到适合我的问题的解决方案。

在我的 Laravel nova 中,我有一些课程类别,如果用户想删除其中一些,我 创建一个删除数据的操作,但在此之前我 检查这些课程类别中是否有一些课程。 这一切正常。我会为每个检查过的 foreach 循环 类别,但如果有些是可删除的,有些不是 foreach 爆发并停止。 我认为这是因为返回语句。但是我怎样才能得到这个回报

`Action::message('Deleted!');`

Action::danger('The Course Category "'.$model->name.'" could not be deleted, it may contains some Courses!'); 

在没有跳出循环的情况下完成并继续?

【问题讨论】:

    标签: php laravel laravel-nova


    【解决方案1】:

    在循环之前设置一个变量 - 我们称之为“alldeleted”。

    $alldeleted = true;
    

    并且还为不能删除的类别设置了一个空白数组:

    $undeletedcategories = array();
    

    如果在循环期间无法删除其中一个类别,请注意通过将 alldeleted 设置为 false,将类别名称添加到数组中,并使用 continue 转到循环中的下一个元素:

    $alldeleted = false;
    $undeletedcategories[] = $model->name;
    continue;
    

    然后,在流程结束时,查看 $alldeleted 是否为真,并相应地撰写您的回复:

    if($alldeleted) { 
        // return your "all deleted alright" status message here.
    } else { 
        // Return the "these categories weren't deleted" status message here.
    }
    

    【讨论】:

      【解决方案2】:

      感谢 Giles 的快速帮助,我能够解决我的问题。我添加了另一个 foreach 来填充消息中的所有类别名称。

      $alldeleted = true;
      $undeletedcategories = [];
      $categorie = [];
      
      foreach ($models AS $model)
      {
          $course = Course::where('category_id', $model->id)->count();
          if($course === 0)
          {
              $model->delete();
          }
          else {
              $alldeleted = false;
              $undeletedcategories[] = $model->name;
          }
      }
      
      if($alldeleted === true) {
          return Action::message('Deleted all selected Courses successfully!');
      } else {
          foreach($undeletedcategories AS $cat)
          {
              $categorie[] = $cat;
          }
          return Action::danger('The following Course Category "'.implode(", ",$categorie).' " could not be deleted, it may contains some Courses!');
      }
      

      【讨论】:

        猜你喜欢
        • 2021-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-25
        • 2019-04-21
        • 2019-05-30
        相关资源
        最近更新 更多