macrominds/laravel-choice

laravel 的模态选择对话框

0.1.1 2017-04-19 20:58 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:42:16 UTC


README

如果你需要在继续之前确认某个操作,或者你想让用户从多个选项中选择,那么这个解决方案可能正是你所需要的。

示例

用户选择删除一个人。这意味着所有由这个人主办的事件都需要被取消。但你不想默默地取消它们。你想要礼貌地先询问用户。

Screenshot of a modal choice dialogue implemented with macrominds/laravel-choice

只需在控制器中返回 redirect() 的地方返回 Choice 即可。

return Choice::make(
    'Deleting the person will cancel some events',
    sprintf(
        '%s events are going to be canceled if you delete %s',
        $numEvents, $personName
    ),
    [
        Option::makeCancel('Cancel deletion'),
        Option::make(
            'Delete person and cancel events',
            route('customer.force-destroy', ['person' => $person]),
            'DELETE',
            [],
            true),
    ]
);

根据用户的选项,她将被重定向到上一个页面(标准的 Option::makeCancel 行为)或任何你喜欢的路由。你不限于两个选项

安装

composer require macrominds/laravel-choice.

用法

你应该调用 php artisan vendor:publish --tag=laravel-choice

这将把可定制的视图添加到 resources/views/vendor/choice/*,并将简约的样式 resources/assets/sass/vendor/choice/_choice.scss 添加到你的项目中。之后你应该在 app.scss@import "vendor/choice/choice";

在你的主 Blade 视图中,在所有可见页面元素下方,在 </body> 结束之前或是在底部的 <script> 之前,添加以下行

{{ macrominds\laravel\choice\Choice::render() }}

然后呢?没有。你已经准备好了。只需将控制器中的 return redirect() 语句替换为 return Choice::make (//...

待办事项

  • 添加一些文档
  • 使 php5.6 兼容