首页 > 解决方案 > Laravel Nova Actions 多条消息

问题描述

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

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

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

或者

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

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

标签: phplaravellaravel-nova

解决方案


在循环之前设置一个变量——我们称之为“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.
}

推荐阅读