解决yii2左侧菜单子级无法高亮问题的方法,yii2菜单子
解决yii2左侧菜单子级无法高亮问题的方法,yii2菜单子
我们先来看看具体问题。
添加角色是属于角色这个菜单的,如何在执行添加角色这个操作时让角色这个菜单处于选中状态呢?
adminlte左侧导航的Create,View等action不能定位到index的模块(左侧二级导航不能展开定位)
如果你是按照我们上文的教程来的,那接下来所要说明的问题应该不是问题,先来看看我们当时是怎么处理左侧菜单menu的
use mdm\admin\components\MenuHelper; <?php $callback = function($menu){ //鉴于篇幅有限,这里的代码省略,源码见于原文 }; //这里我们对一开始写的菜单menu进行了优化 echo dmstr\widgets\Menu::widget( [ 'options' => ['class' => 'sidebar-menu'], 'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id, null, $callback), ] ); ?>
看到这里,我们不妨打开文件dmstr\widgets\Menu看看这里是怎么实现左侧菜单选中这一困扰众多同学的问题。
protected function isItemActive($item) { if (isset($item['url']) && is_array($item['url']) && isset($item['url'][0])) { //...... if ($arrayRoute[0] !== $arrayThisRoute[0]) { return false; } if (isset($arrayRoute[1]) && $arrayRoute[1] !== $arrayThisRoute[1]) { return false; } if (isset($arrayRoute[2]) && $arrayRoute[2] !== $arrayThisRoute[2]) { return false; } //...... return true; } return false; }
看吧,看上面的代码,也就是说左侧菜单激活的情况是当前路由完全等于菜单路由时菜单才进行激活。
鉴于我们一开始谈到的不少小伙伴疑惑的两个问题,我们这里只需要稍稍调整下代码,判断控制到controller而非action即可,但是源码文件我们又不能修改,怎么办好呢?天热,凉拌。
这里我们拷贝dmstr\widgets\Menu.php文件到backend\components\Menu.php,然后按照下面的方法修改isItemActive方法即可
protected function isItemActive($item) { if (isset($item['url']) && is_array($item['url']) && isset($item['url'][0])) { //...... //改写了路由的规则,是否高亮判断到controller而非action $routeCount = count($arrayRoute); if ($routeCount == 2) { if ($arrayRoute[0] !== $arrayThisRoute[0]) { return false; } } elseif ($routeCount == 3) { if ($arrayRoute[0] !== $arrayThisRoute[0]) { return false; } if (isset($arrayRoute[1]) && $arrayRoute[1] !== $arrayThisRoute[1]) { return false; } } else { return false; } // if ($arrayRoute[0] !== $arrayThisRoute[0]) { // return false; // } // if (isset($arrayRoute[1]) && $arrayRoute[1] !== $arrayThisRoute[1]) { // return false; // } // if (isset($arrayRoute[2]) && $arrayRoute[2] !== $arrayThisRoute[2]) { // return false; // } //...... return true; } return false; }
大功告成,现在我们左侧的菜单引用的Menu文件修改其指向到backend\components\Menu
use backend\components\Menu; echo Menu::widget([ 'options' => ['class' => 'sidebar-menu'], 'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id, null, $callback), ]);
快去试试看我们的问题解决没有吧。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dalam Windows 11, menu Mula telah direka bentuk semula dan menampilkan set apl yang dipermudahkan yang disusun dalam grid halaman, tidak seperti pendahulunya, yang mempunyai folder, apl dan apl pada menu Mula. Anda boleh menyesuaikan susun atur menu Mula dan mengimport serta mengeksportnya ke peranti Windows lain untuk memperibadikannya mengikut keinginan anda. Dalam panduan ini, kami akan membincangkan arahan langkah demi langkah untuk mengimport Reka Letak Mula untuk menyesuaikan reka letak lalai pada Windows 11. Apakah Import-StartLayout dalam Windows 11? Import Start Layout ialah cmdlet yang digunakan dalam Windows 10 dan versi terdahulu untuk mengimport penyesuaian untuk menu Mula ke dalam

Salah satu perubahan yang paling menjengkelkan yang kami pengguna tidak pernah mahu ialah kemasukan "Tunjukkan lebih banyak pilihan" dalam menu konteks klik kanan. Walau bagaimanapun, anda boleh mengalih keluarnya dan mendapatkan kembali menu konteks klasik dalam Windows 11. Tiada lagi berbilang klik dan mencari pintasan ZIP ini dalam menu konteks. Ikuti panduan ini untuk kembali ke menu konteks klik kanan penuh pada Windows 11. Betulkan 1 – Laraskan CLSID secara manual Ini adalah satu-satunya kaedah manual dalam senarai kami. Anda akan melaraskan kunci atau nilai tertentu dalam Editor Pendaftaran untuk menyelesaikan isu ini. Nota – Suntingan pendaftaran seperti ini sangat selamat dan akan berfungsi tanpa sebarang masalah. Oleh itu, anda harus membuat sandaran pendaftaran sebelum mencuba ini pada sistem anda. Langkah 1 – Cubalah

Apl Mesej asli pada iPhone membolehkan anda mengedit teks yang dihantar dengan mudah. Dengan cara ini, anda boleh membetulkan kesilapan, tanda baca dan juga frasa/perkataan yang salah secara automatik yang mungkin telah digunakan pada teks anda. Dalam artikel ini, kita akan belajar cara mengedit mesej pada iPhone. Cara Mengedit Mesej pada iPhone Diperlukan: iPhone menjalankan iOS16 atau lebih tinggi. Anda hanya boleh mengedit teks iMessage pada apl Messages, dan kemudian hanya dalam masa 15 minit selepas menghantar teks asal. Teks bukan iMessage tidak disokong, jadi ia tidak boleh diambil atau diedit. Lancarkan apl Mesej pada iPhone anda. Dalam Mesej, pilih perbualan dari mana anda ingin mengedit mesej

Secara lalai, menu konteks klik kanan Windows 11 mempunyai pilihan yang dipanggil Buka dalam Terminal Windows. Ini adalah ciri yang sangat berguna yang membolehkan pengguna membuka Terminal Windows di lokasi tertentu. Contohnya, jika anda klik kanan pada folder dan pilih pilihan "Buka dalam Terminal Windows", Terminal Windows akan melancarkan dan menetapkan lokasi khusus itu sebagai direktori kerja semasanya. Walaupun ini adalah ciri yang hebat, tidak semua orang mendapati kegunaan untuk ciri ini. Sesetengah pengguna mungkin tidak mahu pilihan ini dalam menu konteks klik kanan mereka dan mahu mengalih keluarnya untuk mengemas menu konteks klik kanan mereka.

Langkah-langkah untuk melaksanakan bar navigasi menu dengan kesan bayangan menggunakan CSS tulen memerlukan contoh kod khusus Dalam reka bentuk web, bar navigasi menu adalah elemen yang sangat biasa. Dengan menambahkan kesan bayangan pada bar navigasi menu, anda bukan sahaja boleh meningkatkan estetikanya, tetapi juga meningkatkan pengalaman pengguna. Dalam artikel ini, kami akan menggunakan CSS tulen untuk melaksanakan bar navigasi menu dengan kesan bayangan dan menyediakan contoh kod khusus untuk rujukan. Langkah-langkah pelaksanaan adalah seperti berikut: Cipta struktur HTML Pertama, kita perlu mencipta struktur HTML asas untuk menampung bar navigasi menu. oleh

Semakin ramai orang mengalami sistem pengendalian Microsoft yang baharu dan dipertingkatkan, tetapi nampaknya sebahagian daripada mereka masih lebih suka reka bentuk sekolah lama. Tidak syak lagi bahawa menu konteks baharu membawa konsistensi yang mengagumkan kepada Windows 11. Jika kita menganggap Windows 10, hakikat bahawa setiap aplikasi mempunyai elemen menu konteksnya sendiri menimbulkan kekeliruan yang serius bagi sesetengah orang. Dari bar tugas telus Windows 11 ke sudut bulat, sistem pengendalian ini adalah karya agung. Dalam perkara ini, pengguna di seluruh dunia berminat untuk mengetahui cara melumpuhkan menu Windows 11 Show More Options dengan cepat. Prosesnya agak mudah, jadi jika anda berada dalam bot yang sama, pastikan anda menyemaknya sepenuhnya

Bagaimana untuk mengalih keluar jquery daripada yii2: 1. Edit fail AppAsset.php dan ulas nilai "yii\web\YiiAsset" dalam pembolehubah $depends 2. Edit fail main.php dan tambah konfigurasi sebagai "'yii" di bawah medan "komponen" \web\JqueryAsset' => ['js' => [],'sourcePath' => null,]," untuk mengalih keluar skrip jquery.

Kita semua tahu iklan boleh menjengkelkan pada masa-masa tertentu. Cara iklan muncul pada masa yang paling tidak dialu-alukan; Jadi, jika anda tertanya-tanya bagaimana untuk membuang iklan Windows 11 yang berterusan tetapi tidak tahu caranya, inilah bantuan yang anda tunggu-tunggu. Dalam artikel ini Mengapa saya mendapat iklan dalam Windows 11? Walaupun terdapat keperluan mendesak untuk menghapuskan iklan Windows 11, kami fikir ia patut memahami perkara yang mencetuskan iklan ini dan sebab anda mendapatkannya: Ciri yang ditambah daripada kemas kini Windows terbaharu - ciri seperti Berita dan Minat boleh menyukarkan untuk mendapatkan pemberitahuan tanpanya Gunakan komputer anda. ini
