在Laravel中,可以通过重写AdminController中的update和create方法来禁止自动更新和创建操作。具体步骤如下:

  1. 创建一个AdminController,并继承自Laravel中提供的AdminBaseController。

  2. 在AdminController中重写update和create方法,将其置为空方法,即不执行任何操作。

  3. 在AdminController中定义一个静态属性$disableActions,将其值设置为['update', 'create']。

  4. 在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即可实现禁止自动更新和创建操作。

laraval admin 里禁止自动更新update和create

原文地址: https://www.cveoy.top/t/topic/8CR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录