2.4 Laravel admin增删改查创建

以下表名均用 music 代替

 

1、生成数据表创建文件、数据表模型文件

模型文件:/app/Models/表名.php

建表文件:/database/migrations/年_月_日_6个数字_create_Music _table.php

# 表名前缀要大写
# 加上 -m 才会生成数据表创建文件
php artisan make:model Music -m

 

 

2、修改建表文件

 

打开建表文件,并修改up方法,把数据表要用的字段加进去

// 默认
public function up()
{
    Schema::create('music', function (Blueprint $table) {
        $table->id();
        $table->timestamps();
    });
}


// 修改举例
public function up()
{
    Schema::create('music', function (Blueprint $table) {
        $table->id();
        $table->string('name',50)->unique()->comment('歌曲名'); // varchar(50) 唯一索引
        $table->string('aurhor',50)->comment('歌手'); // varchar(50)
        $table->string('cover',255)->default('')->comment('封面地址'); // varchar(255) default ''
        $table->string('url',255)->default('')->comment('url地址'); // varchar(255) default ''
        $table->enum('is_fabu',[0,1])->default(0)->comment('发布状态');// enum('0','1')
        $table->tinyInteger('rate')->default(0)->comment('评分');// tinyint()
        $table->text('description')->comment('介绍'); // text
        $table->softDeletes();// 添加软删除字段
        $table->timestamps();
    });
}

 

 

3、运行命令创建表

php artisan migrate

运行后会在数据库创建以下表结构

 

 

4、创建测试数据

这一步跳过,随便写个for循环自己也能创建

 

 

5、生成增删改查控制器

运行以下代码,生成控制器

# Mac os、 Linux 把\替换成\\
php artisan admin:make MusicController --model=App\Models\Music
# 执行结果返回
App\Admin\Controllers\MusicController created successfully.
Add the following route to app/Admin/routes.php:
    $router->resource('music', MusicController::class);

 

6、建立路由

# 把执行结果返回的路由代码,添加到 /app/Admin/routes.php
# 添加到 Route::group 的回调函数中
$router->resource('music', MusicController::class);

 

 

7、添加菜单

访问:域名/admin/auth/menu

右侧新增一个菜单,路径填写路由的路径:music,然后刷新页面就能看到。

到这一步基本的增删改查就有了,然后列表管理里显示的字符是字段名称,这个要自己改,还有显示控件、修改控件可能不是自己想要的,可以参考官方文档:https://laravel-admin.org/docs/zh/1.x/model-form 做修改

 

默认显示

 

 

8、修改列表页显示的语言

$grid->column('id', __('Id'));
$grid->column('name', __('Name'));
$grid->column('aurhor', __('Aurhor'));
$grid->column('cover', __('Cover'));
$grid->column('url', __('Url'));
$grid->column('is_fabu', __('Is fabu'));
$grid->column('rate', __('Rate'));
$grid->column('description', __('Description'));
$grid->column('deleted_at', __('Deleted at'));
$grid->column('created_at', __('Created at'));
$grid->column('updated_at', __('Updated at'));

可以直接修改第二个参数为中文的字段label,但是最好的办法是去设置字符串翻译,到resources/lang目录下新建resources/lang/zh-CN.json,增加对应的翻译:

"Id": "ID",
"Name": "歌曲名",
"Aurhor": "歌手",
"Cover": "封面地址",
"Url": "url地址",
"Is fabu": "发布状态",
"Rate": "评分",
"Description": "介绍",
"Deleted at": "删除时间",
"Created at": "创建时间",
"Updated at": "修改时间"

这样的话,其它控制器也能复用这里的翻译。

 

 

9、控件修改

控件显示和编辑新增显示的控件不是和字段对应的,要做如下修改。

详细文档:https://laravel-admin.org/docs/zh/1.x/model-form-fields3

 

 

# 控制器代码
<?php
namespace App\Admin\Controllers;
use App\Models\Music;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Show;
class MusicController extends AdminController
{
    /**
     * Title for current resource.
     *
     * @var string
     */
    protected $title = '音乐';
    /**
     * Make a grid builder.
     *
     * @return Grid
     */
    protected function grid()
    {
        $grid = new Grid(new Music());
        $grid->column('id', __('Id'));
        $grid->column('name', __('Name'));
        $grid->column('aurhor', __('Aurhor'));
        $grid->column('cover', __('Cover'))->image('',100,100); // server为空默认使用.env文件的APP_URL作为服务器拼接图片地址前缀
        $grid->column('url', __('Url'))->link();
        $grid->column('is_fabu', __('Is fabu'))->bool(['0'=>true,'1'=>false]);
        $grid->column('rate', __('Rate'));
        $grid->column('description', __('Description'));
        $grid->column('deleted_at', __('Deleted at'));
        $grid->column('created_at', __('Created at'));
        $grid->column('updated_at', __('Updated at'));
        $grid->filter(function ($filter) {
            // 范围过滤器,调用模型的`onlyTrashed`方法,查询出被软删除的数据。
            $filter->scope('trashed', '回收站')->onlyTrashed();
        });
        return $grid;
    }
    /**
     * Make a show builder.
     *
     * @param mixed $id
     * @return Show
     */
    protected function detail($id)
    {
        $show = new Show(Music::findOrFail($id));
        $show->field('id', __('Id'));
        $show->field('name', __('Name'));
        $show->field('aurhor', __('Aurhor'));
        $show->field('cover', __('Cover'));
        $show->field('url', __('Url'));
        $show->field('is_fabu', __('Is fabu'));
        $show->field('rate', __('Rate'));
        $show->field('description', __('Description'));
        $show->field('deleted_at', __('Deleted at'));
        $show->field('created_at', __('Created at'));
        $show->field('updated_at', __('Updated at'));
        return $show;
    }
    /**
     * Make a form builder.
     *
     * @return Form
     */
    protected function form()
    {
        $form = new Form(new Music());
        $form->text('name', __('Name'))->required();
        $form->text('aurhor', __('Aurhor'))->required();
        $form->image('cover', __('Cover'))->required();
        $form->url('url', __('Url'))->required();
        $form->switch('is_fabu', __('Is fabu'))->states([
            'on'  => ['value' => 1, 'text' => '发布', 'color' => 'success'],
            'off' => ['value' => 0, 'text' => '未发布', 'color' => 'danger'],
        ]);
        $form->number('rate', __('Rate'))->min(0)->max(100)->required();
        $form->editor('description', __('Description'))->required(); // 用了wangeditor2,安装拓展:https://github.com/laravel-admin-extensions/wangEditor2 && /app/bootstrap.php 去掉移除editor插件
        return $form;
    }
}
# 模型代码
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use DateTimeInterface;
class Music extends Model
{
    use HasFactory;
    use SoftDeletes;
    /**
     * 为数组 / JSON 序列化准备日期。
     *
     * @param  \DateTimeInterface  $date
     * @return string
     */
    protected function serializeDate(DateTimeInterface $date)
    {
        return $date->format('Y-m-d H:i:s');
    }
}
# bootstrap.php
<?php
Encore\Admin\Form::forget(['map']);

 

结束

参考:https://blog.csdn.net/weixin_33804582/article/details/86717775

 

 

 

 

以下省略。。。


最近弄了几个站,留个外链
ITM游戏资源
ITM资源

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Vue-antd-admin增删改查操作,你可以按照以下步骤进行: 1. 创建一个数据表格组件,用于展示数据,并导入antd的Table组件和相关样式。 2. 在数据表格组件中,使用Table组件的columns属性定义表格的列,每一列对应数据表中的一个字段。同时,在columns中可以定义一些操作列,比如编辑和删除按钮。 3. 在数据表格组件中,通过调用接口获取后端返回的数据,并将数据渲染到表格中。 4. 实现添加功能:创建一个添加数据的弹窗组件,使用antd的Modal组件作为弹窗容器,并在弹窗中设置表单项,根据需要可以使用antd的Form组件来处理表单验证和提交。 5. 在数据表格组件中,通过点击添加按钮打开弹窗组件,填写表单项并提交数据到后端接口。 6. 实现编辑功能:创建一个编辑数据的弹窗组件,与添加数据的弹窗组件类似,但需要在打开弹窗时传入要编辑的数据。 7. 在数据表格组件中,通过点击编辑按钮打开编辑弹窗组件,将要编辑的数据传递给弹窗组件,并在弹窗中显示该数据。修改表单项后,提交修改后的数据到后端接口。 8. 实现删除功能:在数据表格组件中,为删除按钮绑定点击事件,点击时调用后端接口删除对应的数据。 以上是基本的增删改查操作流程,具体的实现细节还需要根据你的具体业务需求进行调整和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值