saidy / voyager-dependent-dropdown
为Voyager插件创建依赖下拉字段
1.0.3
2023-05-16 11:31 UTC
Requires
- tcg/voyager: ^1.6
This package is auto-updated.
Last update: 2024-09-16 14:32:44 UTC
README
使用git链接https://github.com/d3turnes/dependent-dropdown-with-voyager的帮助,实现Voyager依赖下拉选项
安装
要安装,请运行以下命令
composer require saidy/voyager-dependent-dropdown php artisan vendor:publish --provider="Saidy\VoyagerDependentDropdown\Providers\VoyagerDependentServiceProvider"
示例关系方法
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class TraineeInfo extends Model { use HasFactory; public $timestamps = false; protected $primaryKey = 'trainee_id'; protected $table = 'trainee_info'; public $additional_attributes = ['trainee_full_name']; public function getTraineeFullNameAttribute() { return "{$this->trainee_name}: ({$this->trainee_id})"; } public static function postingUpazilaRelationship($id) { /** * * return [ * 'posting_upazila' => xxx, * 'division_id' => yyy, * 'district_id' => yyy * ] * */ return self::where('trainee_info.trainee_id', '=', $id) ->select( 'trainee_info.posting_upazila', 'division.division_id', 'division.division_id as posting_division', 'district.district_id', 'district.district_id as posting_district' ) ->join('upazila', 'upazila.upazila_id', '=', 'trainee_info.posting_upazila') ->join('district', 'upazila.district_id', '=', 'district.district_id') ->join('division', 'district.division_id', '=', 'division.division_id') ->first(); } }
示例配置选项
{ "model": "App\\Models\\Division", "name": "posting_division", "route": "api.v1.dropdown", "display": "Posting Division", "placeholder": "Select Division", "key": "division_id", "label": "division_name", "dependent_dropdown": [ { "model": "App\\Models\\District", "name": "posting_district", "display": "Posting District", "placeholder": "Select District", "key": "district_id", "label": "district_name", "where": "division_id" }, { "model": "App\\Models\\Upazila", "name": "posting_upazila", "display": "Posting Upazila", "placeholder": "Select Upazila", "key": "upazila_id", "label": "upazila_name", "where": "district_id" } ] }