bacao/laravel-admin-hasmany-extra

Laravel-admin helpers for hasMany multiple image upload and nested conditional fields.

Maintainers

Package info

github.com/song0223/laravel-admin-ext-hasmany

Homepage

pkg:composer/bacao/laravel-admin-hasmany-extra

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.1 2026-04-02 10:28 UTC

This package is auto-updated.

Last update: 2026-04-03 04:49:44 UTC


README

laravel-admin 扩展,提供两块能力:

  • hasMany 里的多图上传、排序、删除
  • hasMany/NestedForm 里的原生链式 ->when(...) 条件显示
  • hasMany/NestedForm 里的 table(...) JSON 表格兼容

安装

composer require bacao/laravel-admin-hasmany-extra

字段注册

扩展安装后会自动注册:

$form->hasmanyExtraMultipleImage('banner', 'Banner');

如果你想保持旧项目里的方法名,也可以在项目自己的 app/Admin/bootstrap.php 里再加一行:

\Encore\Admin\Form::extend('hasmanyMultipleImage', \Encore\HasmanyExtra\Fields\HasManyMultipleImage::class);

多图上传

多图上传的值解析、旧图排序同步、单张删除都已经内置:

$form->hasMany('items', '商品项目', function (Form\NestedForm $form) {
    $form->hasmanyExtraMultipleImage('banner', 'Banner图')
        ->uniqueName()
        ->removable()
        ->sortable();
});

条件显示

安装这个扩展后,hasMany 里的 radio()->when(...) 可以直接按 laravel-admin 原生写法使用:

$form->hasMany('items', '商品项目', function (Form\NestedForm $form) {
    $form->radio('type', '类型')->options([
        1 => '厨师介绍',
        2 => '餐品介绍',
        3 => '菜单介绍',
        4 => '酒店介绍',
    ])->when(3, function (Form\NestedForm $form) {
        $form->textarea('menu', '菜单');
    });
});

hasMany 里的 table

NestedForm 里可以继续按接近 laravel-admin 原生的写法使用(目前只支持text和textarea):

$form->hasMany('items', '商品项目', function (Form\NestedForm $form) {
    $form->table('menu', '子菜单', function ($table) {
        $table->text('name', '名称');
        $table->textarea('desc', '描述');
    });
});

删除接口

扩展会自动注册后台路由:

POST /admin/hasmany-extra/delete

用于处理 hasMany 子项里的单张旧图删除。