Laravel-admin-select2 可能是第一个基于 The 996 Prohibited License 的项目

Laravel-Admin select2 插件#

一款异步的 select2 针对 laravel-admin 插件,适用于不定条数的模型中选择框场景,包括单选、多选。

在表单中尝试检索时,才会 ajax 去模型中查询选项,设计极度精简。

*. 注意: 1.x 版与 0.x 版本使用和 LICENSE 不兼容.

安装#

composer require xiaohuilam/laravel-admin-select2

使用#

代码

<?php

namespace App\Admin\Controllers;

use App\Http\Controllers\Controller;
//use Encore\Admin\Form; // 废弃此行
use LaravelAdminExt\Select2\Form; // 启用此行
use App\Models\User;
use App\Models\UserResource;
use Illuminate\Support\Facades\DB;

class YourController extends Controller
{
    // ...
    protected function form()
    {
        $form = new Form(new UserResource);

        $form->select('user_id', 'User id')->match(function ($keyword) {
            /**
             * @var \Illuminate\Database\Eloquent\Builder $query 查询对象,**切记如果数据模型没有text或id属性,记得as成text和id!**
             */
            $query = User::where('name', 'LIKE', '%' . $keyword . '%')->select([DB::raw('name AS text'), 'id',]);
            return $query;
        })->text(function ($id) {
            return User::where(app(User::class)->getKeyName(), $id)->pluck('name', 'id');
        });

        $form->multipleSelect('tags', 'Tags')->match(
            function ($keyword) {
                return Tag::where('name', 'LIKE', '%' . $keyword . '%')->select([DB::raw('name AS text'), 'id',]);
            }
        )
        ->text(
            function ($id_list) {
                return Tag::whereIn(app(Tag::class)->getKeyName(), $id_list)->pluck('name', 'id');
            }
        );

        $form->text('title', 'Title');
        $form->textarea('content', 'Content');

        return $form;
    }
}

截图

screenshot.png

项目地址 https://github.com/xiaohuilam/laravel-admi...

www.anquanssl.com 安全 SSL
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 7
xcaptain

支持拖拽排序吗,觉得这功能还挺必要的

5年前 评论
XiaohuiLam (楼主) 5年前
Su 5年前
xcaptain (作者) 5年前
XiaohuiLam (楼主) 5年前

这个插件非常好用,感谢作者。我在这提一个 bug,select () 使用 ->when () 的时候报错 nvalid form field type (View: 我的地址马赛克 /vendor/encore/laravel-admin/resources/views/form.blade.php)

11个月前 评论

提一个 bug,附带解决方案: 使用 ->when () 的时候会报错,在 encore/laravel-admin/src/Form/Field/CanCascadeFields.php 的 protected function getFormFrontValue () 方法里添加: case \LaravelAdminExt\Select2\Form\Field\Select::class: //select2 插件兼容

11个月前 评论