blockpc / select2-wire
免费的 Select2 Livewire 包
Requires
- livewire/livewire: ^2.6
Requires (Dev)
- orchestra/testbench: 6.x-dev
- phpunit/phpunit: 9.5.x-dev
This package is auto-updated.
Last update: 2024-09-22 03:38:26 UTC
README
read plis
这个包已经过时了...我发现创建一个 Laravel 的 select2 非常简单,查看这个 git https://gist.github.com/blockpc/5878e8d02b1fa33a9e13ab912e9a6440 现在的 gist 是旧版本,但如何解释取决于每个人,基本是一样的
旧版本
此包通过命令创建 select2 Livewire 组件。该包是在 TALL 堆栈下构建的。请确保您有要求(参见 composer.json)。一个命令创建一个 Livewire 组件及其视图,并提供创建一个接收父组件基本事件的 trait 的选项。
安装
composer require blockpc/select2-wire
命令
单个组件 创建一个作为单个可选的组件,允许您动态添加数据
php artisan select2:single
多个组件 创建一个作为多个可选的组件,允许您动态添加数据,数据必须由逗号分隔
php artisan select2:multiple
删除组件 此命令会删除创建的组件
php artisan select2:delete
单个组件 Foo
php artisan select2:single foo
此命令创建一个 单个
组件 select2 类(位于目录 app Livewire/Select2/FooSelect2.php
下)和一个视图(位于目录 resource livewire/select2/foo-select2.blade.php
下),与模型 Foo
相关。
单个组件 Foo 与模型 Baz
php artisan select2:single foo --model=baz
# or
php artisan select2:single foo -m baz
此命令创建一个 单个
组件 select2 类(位于目录 app Livewire/Select2/FooSelect2.php
下)和一个视图(位于目录 resource livewire/select2/foo-select2.blade.php
下),与模型 Baz
相关。
单个组件 Foo 与模型 Baz 和父模型 Taz
这是建议的命令。它具有与其他命令相同的行为,但添加了一些事件(和监听器),允许您与外部组件交互(例如 CRUD)。它还允许您创建一个 trait 来帮助您完成此操作。
php artisan select2:single foo --model=baz --parent=taz
# or
php artisan select2:single foo -m baz -p taz
此命令创建一个 单个
组件 select2 类(位于目录 app Livewire/Select2/FooSelect2.php
下)和一个视图(位于目录 resource livewire/select2/foo-select2.blade.php
下),与模型 Baz
相关和父模型 Taz
,如果您需要与外部组件交互,则可以创建一个 trait(位于目录 app Livewire/Select2/Traits/SingleSelect2.php
下)
多个组件 Foo
php artisan select2:multiple foo
此命令创建一个 多个
组件 select2 类(位于目录 app Livewire/Select2/FooSelect2.php
下)和一个视图(位于目录 resource livewire/select2/foo-select2.blade.php
下),与模型 Foo
相关。
多个组件 Foo 与模型 Baz
php artisan select2:multiple foo --model=baz
# or
php artisan select2:multiple foo -m baz
此命令创建一个 多个
组件 select2 类(位于目录 app Livewire/Select2/FooSelect2.php
下)和一个视图(位于目录 resource livewire/select2/foo-select2.blade.php
下),与模型 Baz
相关。
多个组件 Foo 与模型 Baz 和父模型 Taz
这是建议的命令。它具有与其他命令相同的行为,但添加了一些事件(和监听器),允许您与外部组件交互(例如 CRUD)。它还允许您创建一个 trait 来帮助您完成此操作。
php artisan select2:multiple foo --model=baz --parent=taz
# or
php artisan select2:multiple foo -m baz -p taz
此命令创建一个 多个
组件 select2 类(位于目录 app Livewire/Select2/FooSelect2.php
下)和一个视图(位于目录 resource livewire/select2/foo-select2.blade.php
下),与模型 Baz
相关和父模型 Taz
,如果您需要与外部组件交互,则可以创建一个 trait(位于目录 app Livewire/Select2/Traits/MultipleSelect2.php
下)
用法
让我们假设
我们的公司销售车辆,每辆车都有一个代码,一个品牌,可以是各种颜色。
从上面的阅读中,我们了解到我们有一个名为 父模型 的 vehicle
。每个都有一个名称、一个品牌,可以是多种颜色。
在示例目录中,您将找到本教程所需的全部文件
品牌
该模型brand
与父模型vehicle
存在一对一关系
一辆车对应一个品牌
这种关系我们称之为单
关系
颜色
模型color
与父模型vehicle
存在多对多关系一辆车可以有多个颜色,一个颜色也可以设置在多辆车中
这种关系我们称之为多
关系
额外迁移
对于多对多关系,我们需要一个迁移来创建包含color
和vehicle
模型外键的表php artisan make:migration create_color_vehicle_table
你可以在示例目录中找到所有迁移文件
运行迁移
模型
因此,你的父模型vehicle
应该看起来像这样
class Vehicle extends Model { // ... protected $fillable = ['code']; // one-to-one brand public function brand(): BelongsTo { return $this->belongsTo(Brand::class); } // many-to-many colors public function colors(): BelongsToMany // Dont forget import this class { return $this->belongsToMany(Color::class); } }
你的单关系品牌
应该看起来像这样
class Brand extends Model { // ... protected $fillable = ['name']; // one-to-many vehicles public function vehicles(): HasMany // Dont forget import this class { return $this->hasMany(Vehicle::class); } }
你的多关系颜色
应该看起来像这样
class Color extends Model { // ... protected $fillable = ['name']; // One color has many vehicle public function vehicles(): BelongsToMany // Dont forget import this class { return $this->belongsToMany(Vehicle::class); } }
路由和控制器
接下来,我们需要一个路由和一个控制器
- 控制器:
php artisan make:controller VehiclesController -i
- 路由:Route::get('/vehicle', VehiclesController::class)->name('vehicles')
所需命令
我们运行了两个命令
- php artisan select2:single brand -p vehicle
- php artisan select2:multiple color -p vehicle
然后我们确保接受特质的创建。然后我们将创建的组件添加到控制器视图中使用。你可以看到示例及其结构。
祝您享受
💖 支持开发
你喜欢这个项目吗?通过捐赠来支持它
- PayPal: 捐赠
Select2-Wire是开源软件,许可协议为MIT许可。