溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

laravel-admin如何解決表單select聯(lián)動(dòng)時(shí)編輯默認(rèn)沒(méi)選上的問(wèn)題

發(fā)布時(shí)間:2021-07-21 09:58:47 來(lái)源:億速云 閱讀:303 作者:小新 欄目:開(kāi)發(fā)技術(shù)

小編給大家分享一下laravel-admin如何解決表單select聯(lián)動(dòng)時(shí)編輯默認(rèn)沒(méi)選上的問(wèn)題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在開(kāi)發(fā)公司一個(gè)功能時(shí),公司開(kāi)發(fā)環(huán)境用的是laravel-admin,因?yàn)樾枰蒙蟬elect聯(lián)動(dòng),所以根據(jù)文檔說(shuō)明進(jìn)行開(kāi)發(fā),并成功的使用上了,代碼我就不重復(fù),大家可以去參考laravel-admin官網(wǎng)的說(shuō)明。

首先我們找到select的js,路徑:跟目錄/vendor/encore/laravel-admin/src/Form/Field下的Select.php文件,找到下面代碼:

$script = <<<EOT
$(document).on('change', "{$this->getElementClassSelector()}", function () {
 var target = $(this).closest('.fields-group').find(".$class");
 $.get("$sourceUrl?q="+this.value, function (data) {
  target.find("option").remove();
  $(target).select2({
   data: $.map(data, function (d) {
    d.id = d.$idField;
    d.text = d.$textField;
    return d;
   })
  }).trigger('change');
 });
});
 
EOT;

并修改成以下代碼:

$script = <<<EOT
$(document).on('change', "{$this->getElementClassSelector()}", function () {
 var target = $(this).closest('.fields-group').find(".$class");
 $.get("$sourceUrl?q="+this.value, function (data) {
  target.find("option").remove();
  $(target).select2({
   data: $.map(data, function (d) {
    d.id = d.$idField;
    d.text = d.$textField;
    return d;
   })
  }).trigger('change');
 });
});
 
$('{$this->getElementClassSelector()}').trigger('change');
 
EOT;

我們?cè)谠写a中加入這句:

$('{$this->getElementClassSelector()}').trigger('change');

作用就是在初始化的時(shí)候觸發(fā)一次聯(lián)動(dòng)。

然后在我們的表單中,我們?cè)賮?lái)定義編輯初始時(shí)候的值,代碼如下:

$form->select('hezuo', "合作模式")->options(function () {
 $record = request()->route()->parameters();
 $record = $record["chanpin"];
 $data = ChanpinModel::where('id', $record)->first();
 $hezuoList = array(
  "1" => '測(cè)試1',
  "2" => '測(cè)試2',
  "3" => '測(cè)試3',
  );
 $hezuo = $data->hezuo;
 return [$hezuo => $hezuoList[$hezuo]];
});

這段代碼是根據(jù)當(dāng)前記錄的值,去獲取對(duì)應(yīng)所屬那個(gè)選項(xiàng),這樣便使select聯(lián)動(dòng)編輯時(shí),能夠默認(rèn)選上我們的值。

以上是“l(fā)aravel-admin如何解決表單select聯(lián)動(dòng)時(shí)編輯默認(rèn)沒(méi)選上的問(wèn)題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI