2020-12-24 laravel-admin 学习②

邵劲
2023-12-01

界面语言

  • 如果界面显示的是英文板块可以选择在config/app.php文件中进行修改
    找到'locale' => 'en' 将其修改成 'locale' => 'zh-CN',

  • 如果有多语言需求开发 可以在./resource/lang中找到对应的语言去添加翻译

以下为中文翻译文件举例

[
    'prev'                   => '上一步',
    'next'                   => '下一步',
    'quick_create'           => '快速创建',
]

导出

在导出的时候如果遇到乱码了,找到./vendor/encore/laravel-admin/src/Grid/Exporters/CsvExporter.phpgetHeaders方法

protected function getHeaders()
    {
        if (!$this->filename) {
            $this->filename = $this->getTable();
        }

        // 添加下面这行print语句就可以解决问题了
        print(chr(0xEF).chr(0xBB).chr(0xBF));

        return [
            'Content-Encoding'    => 'UTF-8',
            'Content-Type'        => 'text/csv;charset=UTF-8',
            'Content-Disposition' => "attachment;filename=\"{$this->filename}.csv\"",
        ];
    }

以下是为昨天创建的资源控制器的具体落实

  • grid方法

    1. 添加字段
/**
     * 成员列表总览页面
     *
     * @return Grid
     */
    protected function grid()
    {
        $grid = new Grid(new Member());

        // 方法1: 将需要展示字段通过column方法显示出来
        $grid->column('id', 'Id');
        $grid->column('nickname', '昵称');
        $grid->column('truename', '姓名');
        $grid->column('email', '邮箱');

        // 方法2: 直接将字段名作为方法也可以显示出来, 由于可能会和Grid的方法冲突
        //       此方法不建议使用
        $grid->truename('姓名');

        // 方法3: 通过columns方法将多个字段显示出来
        //       有多个不为数组的参数时展示的表格标题为首字母大写的字段名
        $grid->columns(['nickname' => '昵称', 'truename' => '姓名']);
        $grid->columns('nickname', 'truename');

        // 显示id列, 并且设置该字段为可排序字段
        $grid->column('id', 'Id')->sortable();

        return $grid;
    }
  • detail方法

/**
     * 显示成员的详细信息
     *
     * @param mixed $id
     * @return Show
     */
    protected function detail($id)
    {
        $show = new Show(Member::findOrFail($id));

        $show->field('id', 'Id');
        $show->field('nickname', '昵称');
        $show->field('truename', '姓名');
        $show->field('email','邮箱');

        return $show;
    }
  • from方法

/**
     * 制作一个表单生成器, 用于表单提交, 如创建、修改等
     *
     * @return Form
     */
    protected function form()
    {
        $form = new Form(new Member());

        $form->display('id', 'Id');
        // 添加一个只是可见的字段
        $form->text('nickname', '昵称');
        // 添加文本框
        $form->text('truename', '姓名');
        $form->text('email', '邮箱');
        // 添加文本域
        $form->textarea('info', '自我介绍');
        // 还有其他的表单控件都可以直接以方法名的形式去使用

        // 左上角的按钮控件如果不需要可以用以下方法去掉
        $show->panel()->tools(function ($tools) {
            // 去掉修改按钮
            $tools->disableEdit();
            // 去掉列表按钮
            $tools->disableList();
            // 去掉删除按钮
            $tools->disableDelete();
        });

        return $form;
    }
 类似资料: