我们如何在 Back Pack Laravel Admin 中添加小部件

How we can add Widgets in in Back Pack Laravel Admin

在 Back Pack Laravel 管理面板中,我需要在该 CRUD 页面中添加小部件。 在上面的页面中,我想添加那个小部件。

下面Tabacitu的回答比较好,你应该用一下。


原始答案..

您可以通过将 vendor/backpack/crud/src/resources/views/crud/list.blade.php 复制到 resources/views/vendor/backpack/crud/list.blade.php 并在模板的 breadcrumbs 部分上方添加您想要的任何内容来完成此操作

@extends(backpack_view('blank'))

<!-- add your widget content here -->

@php
  $defaultBreadcrumbs = [
    trans('backpack::crud.admin') => url(config('backpack.base.route_prefix'), 'dashboard'),
    $crud->entity_name_plural => url($crud->route),
    trans('backpack::crud.list') => false,
  ];

  // if breadcrumbs aren't defined in the CrudController, use the default breadcrumbs
  $breadcrumbs = $breadcrumbs ?? $defaultBreadcrumbs;
@endphp

如果您只想为某些 CRUD 页面添加内容或根据当前的 CRUD 页面更改内容,您可以扩展 CrudPanel 和 CrudControllers 来实现,或者您可以 use macros to programmatically add functions to the existing CrudPanel 来控制小部件内容

作为 Wesley 答案的替代方案,在 Backpack 4.1 中,您可以添加小部件 before/after 面包屑,方法是将它们从 CrudController::setupListOperation() 推送到 before_breadcrumbsafter_breadcrumbs 部分.

例如,您可以通过以下方式添加一个包含多个小部件的 DIV 小部件:

Widget::add()->to('before_breadcrumbs')
             ->type('div')
             ->class('row col-md-12 ml-1')
             ->content([
                   [], // registered users widget 
                   [], // vehicles widget
                   [], // journeys widget
                   [], // trips widget
]);

当然,您也可以将每个小部件单独推送到同一个堆栈。