下拉菜单

通过Dcat\Admin\Widgets\Dropdown这个类可以快速帮大家构建下拉菜单功能。

基本用法

  1. <?php
  2. use Dcat\Admin\Widgets\Dropdown;
  3. use Dcat\Admin\Layout\Content;
  4. class MyController
  5. {
  6. public function index(Content $content)
  7. {
  8. $options = [
  9. '名称1',
  10. '名称2',
  11. '名称3',
  12. '名称4',
  13. '名称5',
  14. ];
  15. $dropdown = Dropdown::make($options)
  16. ->button('分类导航') // 设置按钮
  17. ->buttonClass('btn btn-white waves-effect') // 设置按钮样式
  18. ->map(function ($label, $key) {
  19. // 格式化菜单选项
  20. $url = admin_url('categories/'.$key);
  21. return "<a href='$url'>{$label}</a>";
  22. });
  23. return $content->body($dropdown);
  24. }
  25. }

效果

下拉菜单 - 图1

点击菜单更换按钮文本

click方法可以让选中的菜单文本显示在按钮中,做到类似下拉选框的效果。

  1. $options = [
  2. ...
  3. ];
  4. $dropdown = Dropdown::make($options)
  5. ->button('选择') // 设置按钮
  6. ->click();

设置标题

  1. $options1 = [
  2. '名称1',
  3. '名称2',
  4. ];
  5. $options2 = [
  6. '测试1',
  7. '测试2',
  8. ];
  9. $dropdown = Dropdown::make()
  10. ->button('使用标题')
  11. ->options($options1, '标题1')
  12. ->options($options2, '标题2');

效果

下拉菜单 - 图2

增加分割线

  1. $options = [
  2. '名称1',
  3. '名称2',
  4. Dropdown::DIVIDER,
  5. '名称3',
  6. '名称4',
  7. ];
  8. $dropdown = Dropdown::make()
  9. ->button('使用分割线')
  10. ->options($options)

效果

下拉菜单 - 图3

自定义按钮

  1. public function index(Content $content)
  2. {
  3. $options = [
  4. '名称1',
  5. '名称2',
  6. '名称3',
  7. '名称4',
  8. '名称5',
  9. ];
  10. $dropdown = Dropdown::make($options)
  11. ->map(function ($label, $key) {
  12. // 格式化菜单选项
  13. $url = admin_url('categories/'.$key);
  14. return "<a href='$url'>{$label}</a>";
  15. });
  16. return $content->body(
  17. <<<HTML
  18. <div class='dropdown'>
  19. <button class='btn btn-primary dropdown-toggle' data-toggle='dropdown'>
  20. <i class='feather icon-email'></i> 自定义按钮
  21. </button>
  22. {$dropdown->render()}
  23. </div>
  24. HTML
  25. );
  26. }

效果

下拉菜单 - 图4