laraval admin 里禁止自动更新update和create
在Laravel中,可以通过重写AdminController中的update和create方法来禁止自动更新和创建操作。具体步骤如下:
-
创建一个AdminController,并继承自Laravel中提供的AdminBaseController。
-
在AdminController中重写update和create方法,将其置为空方法,即不执行任何操作。
-
在AdminController中定义一个静态属性$disableActions,将其值设置为['update', 'create']。
-
在AdminController中重写handleActionMethod方法,判断当前请求是否为$disableActions中的方法,如果是,则返回空响应,否则执行父类AdminBaseController中的handleActionMethod方法。
下面是具体代码实现:
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
class MyAdminController extends AdminController
{
// 禁止自动更新和创建操作
public function update($id)
{
// do nothing
}
public function create()
{
// do nothing
}
// 定义禁止操作的数组
protected static $disableActions = ['update', 'create'];
// 重写handleActionMethod方法
protected function handleActionMethod($method, $parameters)
{
// 如果当前请求为禁止操作,则返回空响应
if (in_array($method, self::$disableActions)) {
return response('');
}
// 否则执行父类AdminBaseController中的handleActionMethod方法
return parent::handleActionMethod($method, $parameters);
}
// 在AdminController中定义Grid和Form,这里省略具体实现
protected function grid()
{
// ...
}
protected function form()
{
// ...
}
}
使用MyAdminController代替原来的AdminController即可实现禁止自动更新和创建操作。
原文地址: https://www.cveoy.top/t/topic/8CR 著作权归作者所有。请勿转载和采集!