Laravel admin 級聯選擇編輯時預設無資料

問題:

在創建新資料時級聯選擇是正常的,但在編輯時級聯的選擇資料不會載入。

自定義方法擴展

擴展\Encore\Admin\Form\Field\Select類,新增一個檔案App\Admin\Extensions\Select.php繼承原先Select類,並新增一個函式用來trigger所選選項。

<?php

namespace App\Admin\Extensions;

use Encore\Admin\Admin;

class Select extends \Encore\Admin\Form\Field\Select
{
public function loadCascading(): void
{
$script = <<<JS
if ($('{$this->getElementClassSelector()}').val() !== ''){
$('{$this->getElementClassSelector()}').trigger('change');
}
JS;
Admin::script($script);
}
}

之後再到app\Admin\bootstrap.php複寫或是新增功能

複寫$form->select():

Encore\Admin\Form::extend('select', \App\Admin\Extensions\Select::class);

新增:

Encore\Admin\Form::extend('self_select', \App\Admin\Extensions\Select::class);

調用希望在編輯時自動加載級聯

$form->select(...)
->options(...)
->load(...)
->loadCascading();