Laravel-Admin 自定义操作按钮大全

laravel admin使用总结1--列表页、导出、按钮禁止 官方文档地址:https://laravel-admin.org/docs/zh/ 安装和配置可查看官方文档,不再赘述,这里只介绍几个自己使用时的可能会有的问题。 注:1.4和1.5以上是两个大版本,不管从文件路径还是数据库字段都有改动,所以不建议直接从1.4升级到1.5以上,如果非要升级的话,建议可以先把之前的代码复制出来一份,然后将项目中1.4版本laravel-admin卸载,重新安装1... 阅读详情

Laravel-Admin 自定义操作按钮大全(表格工具区域、行内操作按钮)

一、行内操作按钮

1、单行操作

行内操作按钮-单行操作共需要三步:

  • 生成操作类
  • 编辑操作类
  • 加入到表格

生成操作类

php atisan admin:action Copy --grid-row --name="复制"

编辑操作类

<?php

namespace App\Admin\Actions;

use Encore\Admin\Actions\RowAction;
use Illuminate\Database\Eloquent\Model;

class Copy extends RowAction
{
    public $name = '复制';

    public function handle(Model $model)
    {
        //直接调用模型的方法复制保存即可
        $model->replicate()->save();
        
        return $this->response()->success('复制成功.')->refresh();
    }
    
    //可以增加一个dialog()来进行互动
    public function dialog()
    {
        $this->confirm('确定复制?');
    }

}


如果需要弹出框,可以增加一个form方法来进行弹出框的创建

<?php

namespace App\Admin\Actions;

use Encore\Admin\Actions\RowAction;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;

class AddStock extends RowAction
{
    public $name = '增加库存';

    public function handle(Model $model, Request $request)
    {
        try {
            //使用request 来获取form 提交的数据
            $stock = $request->get('stock');
            
            //$model 是当前行的数据,可以直接进行操作
            $model->stock = $stock;
            $model->save;

            return $this->response()->success('库存增加成功')->refresh();
        } catch (\Exception $e) {   
            return $this->response()->error('产生错误:' . $e->getMessage());
        }
    }
    
    //增加一个弹出框,使得可以进行表单提交
    public function form()
    {
        $this->text('stock', '增加的库存')->rules('required');
    }
    
    //可以增加一个dialog()来进行互动
    public function dialog()
    {
        $this->confirm('确定复制?');
    }

}


添加到表格

<?php

namespace App\Admin\Controllers;

use App\Admin\Actions\Copy;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Grid;

class UsersController extends AdminController
{
    protected function grid()
    {
        $grid = new Grid(new Goods());

        //$grid->column('id', 'id')...
        

        $grid->actions(function ($actions) {
            //use 刚才编辑好的操作类,直接new 出来就可以用了
            $actions->add(new AddStock());
        });
        
        return $grid;
    }

}


2、批量操作

行内操作按钮-单行操作共需要三步:

  • 生成操作类
  • 编辑操作类
  • 加入到表格

生成操作类

php atisan admin:action Copys --grid-batch --name="批量复制"

编辑操作类

<?php

namespace App\Admin\Actions;

use Encore\Admin\Actions\BatchAction;
use Illuminate\Database\Eloquent\Collection;

class Copys extends BatchAction
{
    public $name = '批量复制';

    public function handle(Collection $collection)
    {
        foreach ($collection as $model) {
            $model->replicate()->save();
        }

        return $this->response()->success('批量复制成功')->refresh();
    }

}


添加到表格

<?php

namespace App\Admin\Controllers;

use App\Admin\Actions\Copys;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Grid;

class UsersController extends AdminController
{
    protected function grid()
    {
        $grid = new Grid(new Goods());

        //$grid->column('id', 'id')...
        
        //添加到批量操作中
        $grid->batchActions(function ($batch) {
    		$batch->add(new Copys());
		});
        
        return $grid;
    }

}


也可以将批量操作放到表格工具区域,只需要稍微修改一下即可:
操作类:

<?php

namespace App\Admin\Actions;

use Encore\Admin\Actions\BatchAction;
use Illuminate\Database\Eloquent\Collection;

class Copys extends BatchAction
{
    //$selector 的值对应html()内的CSS选择器
    protected $selector = '.report-posts';

    public function handle(Collection $collection)
    {
        foreach ($collection as $model) {
            $model->replicate()->save();
        }

        return $this->response()->success('批量复制成功')->refresh();
    }
    
    //在表格工具区域添加一个按钮
    public function html()
    {
        return "<a class='report-posts btn btn-sm btn-danger'><i class='fa fa-info-circle'></i>批量复制</a>";
    }

}


列表:

<?php

namespace App\Admin\Controllers;

use App\Admin\Actions\Copys;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Grid;

class UsersController extends AdminController
{
    protected function grid()
    {
        $grid = new Grid(new Goods());

        //$grid->column('id', 'id')...
        
        //注意需要添加到表格工具条中,不是之前的行内操作了
        $grid->tools(function (Grid\Tools $tools) {
    		$tools->append(new Copys());
		});
        
        return $grid;
    }

}


3、跳转到其他页面

行内操作按钮-单行操作共需要三步:

  • 生成操作类
  • 编辑操作类
  • 加入到表格

生成操作类

php atisan admin:action JumpInfo --grid-row --name="用户信息"

编辑操作类

<?php

namespace App\Admin\Actions;

use Encore\Admin\Actions\RowAction;
use Illuminate\Database\Eloquent\Model;

class JumpInfo extends RowAction
{
    public $name = '用户信息';

    //直接用href()即可,$this->getResource(),获取当前的资源根路径,可以用$this->getKey()获取当前行的主键值
    public function href()
    {
       return "/admin/info?user_id=".$this->getKey();
    }

}


添加到表格

<?php

namespace App\Admin\Controllers;

use App\Admin\Actions\JumpInfo;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Grid;

class UsersController extends AdminController
{
    protected function grid()
    {
        $grid = new Grid(new Goods());

        //$grid->column('id', 'id')...
        

        $grid->actions(function ($actions) {
            //use 刚才编辑好的操作类,直接new 出来就可以用了
            $actions->add(new JumpInfo());
        });
        
        return $grid;
    }

}


二、表格工具区域

表格工具区域自定义工具共需要三步:

  • 生成操作类
  • 编辑操作类
  • 加入到表格

生成操作类

php atisan admin:action Import --name="导入数据"

编辑操作类

<?php

namespace App\Admin\Actions;

use Encore\Admin\Actions\RowAction;
use Maatwebsite\Excel\Facades\Excel;
use Illuminate\Database\Eloquent\Model;

class Import extends RowAction
{
    protected $selector = '.import';

    public function handle(Request $request)
    {
        //用request 获取到上传的文件        
        $data = Excel::toCollection(new ImportOrders(), $request->file('file'));
        //单行处理
        $data = $data->first();
        //过滤掉不需要的值
        $data = $data->filter(function ($item, $key) {
            return [$item[0], $item[1]];
        });

        foreach ($data as $item) {
            
            //处理数据...
            
        }

        return $this->response()->success('导入完成!')->refresh();
    }
    
    public function form()
    {
        $this->file('file', '请选择文件');
    }

    public function html()
    {
        return <<<HTML
        <a class="btn btn-sm btn-default import">导入数据</a>
HTML;
    }

}


添加到表格

<?php

namespace App\Admin\Controllers;

use App\Admin\Actions\Import;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Grid;

class UsersController extends AdminController
{
    protected function grid()
    {
        $grid = new Grid(new Goods());

        //$grid->column('id', 'id')...
        

        $grid->tools(function (Grid\Tools $tools) {
    		$tools->append(new Import());
		});
        
        return $grid;
    }

}


三、返回数据

当处理完逻辑之后,需要返回提示或者下载文件:

返回成功提示:

return $this->response()->success('成功...');

返回失败提示 :

return $this->response()->error('错误...');

返回提示信息:

return $this->response()->info('提示信息...');

返回警告信息:

return $this->response()->warning('警告信息...');

返回之后刷新页面:

return $this->response()->success('Success!')->refresh();

返回之后跳转到其它页面:

return $this->response()->success('Success!')->redirect('/admin/users');

返回之后下载文件:

return $this->response()->success('Success!')->download('http://www.xxx.com/file.zip');

控制提示信息的显示位置、时间:
显示位置的控制方法有topCenter, topLeft, topRight, bottomLeft, bottomCenter, bottomRight, topFullWidth, bottomFullWidth。

// 显示在顶部右边,更换显示位置按照下面的格式即可
return $this->response()->topRight()->success('Success!')->refresh();

提示信息默认显示5秒后自动消失,可以通过timeout方法控制消失时间:

// 3秒之后消失,单位是毫秒
return $this->response()->success('Success!')->timeout(3000)->refresh();

laravel-admin form中的switch控件 不改变状态提交后值为0 我把一个字段设默认值为0 需要审核操作 通过设为1 不通过设为2 $states = [ 'on' =&gt; ['value' =&gt; 1, 'text' =&gt; '通过', 'color' =&gt; 'success'], 'off' =&gt; ['value' =&gt; 2, 'text' =&gt; '不... 阅读详情

相关推荐

laravel-admin 在列表页添加自定义按钮

为了添加自定义按钮,按官方文档分4步走: 1、先定义工具类app/Admin/Extensions/Tools/MyButton.php: &lt;?php namespace App\Admin\Extensions\Tools; use Encore\Admin\Admin; use Encore\Admin\Grid\Tools\AbstractTool; use Illumin...

hhhzua的专栏 1万+

Laravel Admin增加自定义按钮,例如导入excel按钮

Laravel增加自定义按钮,例如导入excel 参考网址: 不建议看,因为缺少关键图片 https://laravel-admin.org/docs/zh/model-grid-custom-actions#app 操作步骤一,创建一个普通操作类 php artisan admin:action Post\\你自己业务的关键字 --name="导入按钮的名字" //示例: php artisa...

Selly166的博客 3140

laravel-admin 在列表页添加自定义按钮的例子

今天小编就为大家分享一篇laravel-admin 在列表页添加自定义按钮的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Laravel-Admin 中,可以使用 action 方法来定义操作按钮的更多操作菜单

以上就是将操作按钮的更多操作菜单外部显示为下拉菜单的方法。可以根据实际需求进行相应的修改和调整。保存文件,刷新页面,即可看到操作按钮的更多操作菜单外部显示为下拉菜单。在 Laravel-Admin 中,可以使用。参数来设置更多操作菜单的按钮显示名称。参数来控制更多操作菜单的显示方式。方法来定义操作按钮的更多操作菜单。方法来定义操作按钮和更多操作菜单。,表示将更多操作菜单显示为下拉菜单。打开对应的控制器文件,找到。参数为你想要显示的名称。

Xerale的博客 788

告别混乱!用Cadence Capture CIS高效管理你的原理图库:以单逻辑器件K9F2G08U0M为例

本文以单逻辑器件K9F2G08U0M为例,详细介绍了如何使用Cadence Capture CIS高效管理原理图库。通过三级分类体系、工程化命名规范和智能检索技术,帮助工程师实现从混乱到有序的转变,提升团队协作效率和设计准确性。

aizhi0169的博客 400

不用Root也能抓包?Android高版本HTTPS抓包的3种替代方案(含Charles技巧)

本文针对Android高版本HTTPS抓包难题,提供了三种无需Root权限的实战解决方案:利用VirtualXposed等虚拟沙盒环境、配置Postern等系统级代理工具,以及通过修改应用源码或网络安全配置。文章还详细解析了Charles抓包工具在非Root环境下的高级配置与排错技巧,帮助开发者在遵守安全规范的前提下,有效进行网络调试与监控。

http9protocoller的博客 645

Laravel-Admin 自定义操作按钮大全(表格工具区域、行内操作按钮)

Laravel-Admin 自定义操作按钮大全(表格工具区域、行内操作按钮) 一、行内操作按钮 1、单行操作 行内操作按钮-单行操作共需要三步: 生成操作类 编辑操作类 加入到表格 生成操作类 php atisan admin:action Copy --grid-row --name="复制" 编辑操作类 <?php namespace App\Admin\Actions; use Encore\Admin\Actions\RowAction; use Illuminate\Data

weixin_42949138的博客 8980

最优化学习笔记1——关于拟牛顿法推导

从2020年3月份到现在,一年的时间里断断续续自学最优化,结合豆瓣读书、知乎等网站上的推荐,翻阅了以下书和课程: Stephen Boyd和Lieven Vandenberghe的《Convex Optimization》,这本书被公认为学习凸优化的必读经典著作,其中大量的篇幅讲应用,讲理论和算法的篇幅稍少一些。在B网站上有Boyd的视频课程,油管上也有,不过只有英文字幕,如果是零基础接触,直接看Boyd的视频稍显费劲,B站上也有凌青老师以《Convex Optimization》为教材的讲解,推荐作为入

xiaofei473的博客 1768

laravel-admin 基本操作 隐藏按钮等

laravel-admin 是一个用于为Laravel提供后台界面的构建器,仅仅通过数行代码,就可以帮助我们构建CRUD后台。 laravel-admin 不需要写前端页面,在控制器controller中渲染即可 本人自己写的工资管理系统 https://github.com/qq175023117/wage-cms 感觉不错的话请点击右上角 star 谢谢支持 laravel-adm...

技术人生的博客 9713

在 VS Code 里配置 SAP Joule for Developers 的 ABAP AI side-by-side 能力

摘要: 随着ABAP开发工具链的演进,VS Code逐渐融入ABAP开发流程,SAP Joule for Developers的ABAP AI能力通过side-by-side模式(基于BTP中央服务)为多系统开发提供统一AI支持。该模式避免了各ABAP后端独立升级AI能力的碎片化问题,由管理员配置BTP订阅URL后,开发者可在ADT或VS Code中全局调用。实际落地需注意角色分工(管理员配置服务,开发者填写URL)、AI units资源规划及配置细节(如区分全局与项目级设置)。建议将Joule URL纳入

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 120

SMPLify-x-master | 复现记录

由于毕业设计中将会用到smpl模型,而smplify方法的各环境依赖版本比较老,复现不太容易,因此便进行了smplifyx方法使用smplx的方法。由于在过程中遇到较多坑,因此进行记录和分享。

qq_44916003的博客 5100

laravel-admin 批量操作

1.可以去掉批量删除按钮 $grid-&gt;tools(function ($tools) { $tools-&gt;batch(function ($batch) { $batch-&gt;disableDelete(); }); }); 2.自定义批量按钮  (1)先定义操作类app/Admin/Extensions/Tools/ReleasePost...

zxdf123的博客 7129

UG NX二次开发-博客文章速览

写了一些UG NX二次开发的心得体会,内容较多,感觉不好查找相应的内容,所以决心把导航写出来,方便自己也方便读者。主专栏是“”,C#专栏为 : “” ,Python专栏为 : “这三个专栏都会持续的更新。如果有需要咨询或者学习讨论的,请私信博主或者加QQ群:749492565。博主几乎每天都在。

GimiGimmy 3714

laravel-admin使添加、编辑按钮支持附带参数

本篇博客教大家如何通过修改laravel-admin源码,使添加、编辑按钮支持附带参数,从而支持我们一些特殊业务。(对于高级版本的laravel-admin编辑方法不支持) 一、自定义添加方法 我们修改vendor\encore\laravel-admin\src下的Grid.php文件,新增以下方法 public $AddUrltoCreate; //专为URL传参使用,将URL参数带到create按钮页面 public function AddUrltoCre...

HZX19941018的博客 1万+

AI颠覆市场调研:生成式智能体如何重构商业决策?

AI正在将市场调研从"成本中心"转变为"战略武器"。当企业能够用生成式智能体实时模拟百万级虚拟用户时,传统调研的样本偏差、时间滞后、成本高昂等问题将不复存在。对于开发者而言,这不仅是技术的狂欢,更是参与商业规则重构的历史机遇。行动建议立即体验Simile/Aaru的智能体平台,验证虚拟样本效果参与LLM持续性记忆架构的开源项目(如Memory Llama)关注AI调研API的标准化进程(如Hugging Face的Market Research Toolkit)

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 614

淋巴结病理数字玻片读取与处理代码

Whole-slide images are generally stored in a multi-resolution pyramid structure. 首先安装openslide模块 pip install openslide-python import os.path as osp import openslide from pathlib import Path...

猫头军师兵书 1276

laravel-admin隐藏按钮, 及设置按钮显示, 默认序列, form 表单的不可修改值

全局隐藏 在 bootstrap.php 中 use Encore\Admin\Form; Form::init(function (Form $form) { $form->tools(function (Form\Tools $tools) { // 去掉`列表`按钮 $tools->disableList(); // 去掉`删除`按钮 $tools->disableDelete(); // 去掉

believer_li的博客 4370

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

laravel框架laravel-admin右上角添加跳转指定页面按钮

在vendor\encore\laravel-admin\src\Grid.php页面添加一个属性protected $preg_url =['url'=&gt;'','title'=&gt;'','flag'=&gt;false];然后再添加一个控制器可以传参的方法和一个视图层获取内容的方法/***设置跳转地址及标题**@param $url跳转地址*@param $title标题*/publi...

guyaofei的博客 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

laravel admin grid 模型表格行操作

模型表格行操作 model-grid默认有三个行操作编辑、删除和详情,可以通过下面的方式关闭它们: $grid->actions(function ($actions) { //关闭删除 $actions->disableDelete(); //关闭编辑 $actions->disableEdit(); //关闭详情 $actions->disableView(); }); 可以通过传入的$actions参数来获取当前行的数据: $

懒虫的博客 4569

laravel-admin自定义扩展及常见问题汇总

1. 浏览器打开 http://xxxx/admin/ 404 配置伪静态,以Nginx为例: location / { try_files $uri $uri/ /index.php?query_string; } 2. Laravel admin 汉化问题 完成安装之后,默认语言为英文(en),如果要使用中文,打开config/app.php,将locale设置为zh-CN即可。 如果上面修改之后,信息还是英文的,那么可以安装Laravel-lang来切换成中文。 3. 修改config/ad

IT-Blog 1701

laravel-admin 新增,删除,批量操作,导入导出,修改 等页面按钮 显示与关闭

$grid->actions(function ($actions) { // 去掉查看 $actions->disableView(); }); //去掉复选框 $grid->disableRowSelector(); //禁用行操作 $grid->disableActions(); //禁用单选框$grid->disableRowSelector();//禁用新增按钮$grid->disableCreation(); ...

bboyzhouda的博客 2632

laravel-admin定制行操作

如果我们想对laravel-admin的表格进行定制操作操作的话,可以参考如下的操作方式 禁用创建按钮 $grid->disableCreateButton(); 禁用分页条 $grid->disablePagination(); 禁用查询过滤器 $grid->disableFilter(); 禁用导出数据按钮 $grid->disableExport...

hxthon的博客 1162

laravel-admin中添加自定义操作项

添加操作按钮 $grid->actions(function (Grid\Displayers\Actions $actions) { // 添加操作按钮 $actions->add(new Epcmoney); }); 添加模型 App\Admin\Actions\Users; 在这里创建 money.php 文件 具体操作代码如下 <?php namespace App\Admin\Actions\Users; use Encore\Admin\Actio

believer_li的博客 5066

Laravel-admin基础用法总结和自定义model

总结laravel-admin展示用到的基本方法 基础用法 模型数据获取 第一列显示id字段,并将这一列设置为可排序列 $grid-&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;id('ID')-&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;sortable(); 获取单列数据的方法 $gr

guoyanga1的博客 2万+

admin.php 自定义,laravel-admin 在列表页添加自定义按钮的例子

为了添加自定义按钮,按官方文档分4步走:1、先定义工具类app/Admin/Extensions/Tools/ShowArtwork.php:namespace App\Admin\Extensions\Tools;use Encore\Admin\Admin;use Encore\Admin\Grid\Tools\AbstractTool;use Illuminate\Support\Facad...

weixin_29179311的博客 647
上一篇: MySQL中通过关联Update将一张表的一个字段更新到另一个表中
下一篇: 关于mysql单表根据按照某一字段按照年份统计总数
撸猫@冒泡泡
博客等级 码龄10年 16粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

撸猫@冒泡泡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值