Yii2 rbac 権限制御メニューのサンプル チュートリアル、yii2rbac
前回の記事では、yii2 の完璧なバックエンドの構築と rbac 権限制御の実装サンプル チュートリアルを紹介しました。これは、yii2 のバックグラウンド構築と rbac 権限制御を完璧に実現しました。この記事は上記を改善および補足するものであるため、まだ実装されていない場合は、まず上記を読んでからこの記事を参照してください。
最終メニューの権限を制御する方法が理解できず、理解できないと報告している人もいます。さらに、まだ完了していないようで、ふざけています。実際には、それほど包括的なものではありません。今日は、メニューに対する完璧な権限を実現する方法を見てみましょう。まずは主な内容を記載しますので、必要ない方は読まなくても大丈夫です。
メニューテーブルを使用してメニューを追加します
左側のメニュー結果管理は完璧に表示されています
メニューの前にある小さなアイコンをカスタマイズして表示します
メニューの表示/非表示を制御する方法
ページ操作ボタンは勝手に表示されません
グリッドビューには操作権限のあるボタンのみが表示されます
それでは、権限制御メニューについて他にご要望がございましたら、以下にメッセージを残してください。一緒に話し合ってコミュニケーションをとりましょう。
まず全体的な効果をプレビューするために写真を見てください。そうしないと、学習意欲を刺激することができません。
まず、ルーティング ページ /dmin/route/index にアクセスし、左側にあるものをできるだけ選択してから右側に移動し、現在のユーザーに関連するアクセス許可を忘れずに割り当てます。
次に、menu list/admin/menu/index にアクセスし、[メニューの追加] をクリックします。この時点でアクセス権限がない場合は、現在のユーザーが設定ファイルのアクセス ファイルにある権限にアクセスできるように一時的に許可してください。 、アクセス許可を追加した後、時間が来たら必ずアクセス設定を削除することを忘れないでください。そうしないと、アクセス許可の有効期限が切れても私に戻ってこないでください。
ここではまず、上の図で赤くマークされた 4 つのフィールドに入力します
例: 第 1 レベルのメニュー「権限管理」を追加したいとします
これは第一レベルのメニューであるため、ここでは「/admin/default/index」を選択します。 、ルーティング ページにアクセスし、左側のボタンをクリックして、右側の選択を右に移動します。
マッピングは実際には並べ替えの問題です。たとえば、2 つのメニューを追加すると、マッピング値 1 のメニューが一番上にあり、マッピング値 2 のメニューが 1 の下に表示されます。ここでは数値 1 を入力します。
「データ」項目については後ほど説明します。
先ほどご紹介した方法で追加してみましょう
セカンダリメニュー「Permission Control」を追加する例を示します。ここで必要なのは、親名に、先ほど正常に追加した第 1 レベルの名前「Permission Management」を入力することだけです。他はすべて通常通りです。操作方法がわからない場合は、もう一度読んでください。権限管理のすべてのメニューをここに追加すると、次に必要になるため、さらに練習することができます。
メニューを追加しました。
次のステップを見て、前に構築した背景フレームワークを使用して表示しましょう。
リーリーとても簡単なことではありませんか?なぜ私のものには dmstr がないのでしょうか? 申し訳ありませんが、何度も言いますが、このメニューを組み合わせる前に、まず上記を読む必要があります。
OK、ページを更新してメニューを表示します。必要な機能はまだ完全には実装されていませんが、これでメニューが表示されるはずです。
次に、フォーカスと難易度を入力します。メニューの前に小さなアイコンを実装し、メニューを完了してコントロールを非表示にする必要があります。
最初にメニューを作成したとき、入力されていない唯一のオプションが「データ」だったことを覚えていますか?後の操作の便宜のために、ここでアイコンと非表示のオプションをまとめて記入します。最初のスクリーンショットにある「バックエンド ユーザー管理」の 2 番目のメニューを例として、変更を加えてみましょう。スクリーンショットを撮って、メニューの現在のステータスを確認してください
新しいアイデアがある場合は、後で修正するので、更新ページの「データ」項目に必ず次のコードを入力してください。
リーリーはい、この「データ」項目に入力するのは JSON コードです。次に、コードを誰でも読みやすくするために、コードに少し変更を加えます。ここのコールバックはページに直接書き込まれます。パッケージ化と最適化を続行できます。
リーリーはい、正しく読みました。コードは少し長いので、簡単に分析しましょう。実際、ここでの $callback メソッドは、上で追加したメニューの「データ」項目のみを分析します。アイコンと表示をそれぞれ判断し、現在のメニューに追加したことを確認するのは難しくありません。
到此,我们费了一番波折终于实现菜单加icon和设置菜单的隐藏。如果你有其他的属性需要进行配置,此处仍然可以继续单独配置。
现在,我们还有两个任务仍待完成,要完成接下来的两个任务,为了大家的方便,建议你的项目可以自定义配置gii模版,不支持自定义gii模板的可以参考自定义gii模版 当你发现我们后面需要做的功能,我觉得你会赞叹我们这里的操作。
为了方便操作,我们这里增加一个测试表test,我们先用未做修改的gii模版生成一份model+curd。我们先把test/*的所有权限分配给当前登录的用户,并添加一条数据。打开/test我们可以正常看到下面的截图,注意图中的两个标记。
然后我们打开test/index.php文件,对标记的两个地方进行如下修改
use mdm\admin\components\Helper; <?php //没有创建权限不显示按钮 if(Helper::checkRoute('create')) { echo Html::a('Create Test', ['create'], ['class' => 'btn btn-success']); } ?> <?= GridView::widget([ // ...... 'columns' => [ // ...... [ 'class' => 'yii\grid\ActionColumn', 'template' => Helper::filterActionColumn('{view}{update}{delete}'), ], ], ]); ?>
现在我们刷新下页面/test再看看,好像没什么变化嘛。别急,我们现在撤销当前用户的/test/create 权限和/test/update权限,然后你在刷新下页面看看效果,我们截图看看。
也就是说我们没有权限的按钮消失了,当你手动访问/test/create的时候你会发现也会提醒你没有权限。
如果你的gii模板是自定义的,相信你会迅速在其生成的模板中所有的操作上添加权限控制的,是不是很happy
最后,我们的菜单menu关于权限控制的讲解基本也就结束了,长篇大论,仔细回想起来也没多少东西,倒是希望能帮到你一二

tomakephpapplicationsfaster、followthesesteps:1)useopcodecachinglikeopcacheTostoredscriptbytecode.2)最小化abasequeriesecachingingindexing.3)leveragephp7機能forbettercodeefficiency.4)

依存性注入(DI)は、明示的に推移的な依存関係によりPHPコードのテスト可能性を大幅に改善します。 1)DI分離クラスと特定の実装により、テストとメンテナンスが柔軟になります。 2)3つのタイプのうち、コンストラクターは、状態を一貫性に保つために明示的な式依存性を注入します。 3)DIコンテナを使用して複雑な依存関係を管理し、コードの品質と開発効率を向上させます。

DatabaseQueryoptimizationInpholvesseveralstrategESTOEnhancePerformance.1)selectonlynlynlyndorycolumnStoredatedataTransfer.2)useindexingtospeedupdataretrieval.3)revenmecrycachingtostoreres sultsoffrequent queries.4)

phpisusededemingemailsduetoitsbuilt-inmail()functionandsupportiveLibrarieslikephpmailerandswiftmailer.1)usethemail()functionforbasicemails、butithaslimitations.2)emploadforadvancedfeatureSlikelikelivableabableabuses.3)雇用

PHPパフォーマンスボトルネックは、次の手順で解決できます。1)パフォーマンス分析にXdebugまたはBlackfireを使用して問題を見つける。 2)データベースクエリを最適化し、APCUなどのキャッシュを使用します。 3)array_filterなどの効率的な関数を使用して、配列操作を最適化します。 4)bytecodeキャッシュ用のopcacheを構成します。 5)HTTP要求の削減や写真の最適化など、フロントエンドを最適化します。 6)パフォーマンスを継続的に監視および最適化します。これらの方法により、PHPアプリケーションのパフォーマンスを大幅に改善できます。

依存関係(di)inphpisadesignpatternativats anducesclassodulencies、拡張測定性、テスト可能性、および維持可能性。

cachingemprovesppperformancebystring of computationsorquickretrieval、還元装置の削減は、reducingerloadendenhancersponseTimes.efcectivestrategiesInclude:1)opcodecaching、compiledphpscriptsinmemorytoskipcompilation;


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 中国語版
中国語版、とても使いやすい

WebStorm Mac版
便利なJavaScript開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール
