Laravel Nova 操作多条消息
Laravel Nova Actions Multiple messages
我可以在论坛中找到适合我的问题的解决方案。
在我的 Laravel nova 中,我有一些课程类别,如果用户想要删除其中的一些,我
创建一个删除数据的操作,但在此之前我
检查这些课程类别中是否有一些课程。
这一切都很好。我会为每一个被检查的对象执行一个 foreach 循环
类别,但如果有些是可删除的,有些不是,则 foreach 会爆发并停止。
我认为这是因为 return 语句。但是我怎样才能得到这个 return
`Action::message('Deleted!');`
或
Action::danger('The Course Category "'.$model->name.'" could not be deleted, it may contains some Courses!');
在不跳出循环的情况下完成并继续?
在循环之前设置一个变量 - 我们称它为“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.
}
感谢 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!');
}
我可以在论坛中找到适合我的问题的解决方案。
在我的 Laravel nova 中,我有一些课程类别,如果用户想要删除其中的一些,我 创建一个删除数据的操作,但在此之前我 检查这些课程类别中是否有一些课程。 这一切都很好。我会为每一个被检查的对象执行一个 foreach 循环 类别,但如果有些是可删除的,有些不是,则 foreach 会爆发并停止。 我认为这是因为 return 语句。但是我怎样才能得到这个 return
`Action::message('Deleted!');`
或
Action::danger('The Course Category "'.$model->name.'" could not be deleted, it may contains some Courses!');
在不跳出循环的情况下完成并继续?
在循环之前设置一个变量 - 我们称它为“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.
}
感谢 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!');
}