目次
Yii2 rbac 権限制御メニューのサンプル チュートリアル、yii2rbac
ホームページ バックエンド開発 PHPチュートリアル Yii2 rbac 権限制御メニューのメニュー例チュートリアル、yii2rbac_PHP チュートリアル

Yii2 rbac 権限制御メニューのメニュー例チュートリアル、yii2rbac_PHP チュートリアル

Jul 12, 2016 am 08:53 AM
menu rbac thinkphp yii2

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; 
<&#63;php 
//没有创建权限不显示按钮 
if(Helper::checkRoute('create')) { 
echo Html::a('Create Test', ['create'], ['class' => 'btn btn-success']); 
} &#63;> 
<&#63;= GridView::widget([ 
// ...... 
'columns' => [ 
// ...... 
[ 
'class' => 'yii\grid\ActionColumn', 
'template' => Helper::filterActionColumn('{view}{update}{delete}'), 
], 
], 
]); &#63;>
ログイン後にコピー

现在我们刷新下页面/test再看看,好像没什么变化嘛。别急,我们现在撤销当前用户的/test/create 权限和/test/update权限,然后你在刷新下页面看看效果,我们截图看看。

也就是说我们没有权限的按钮消失了,当你手动访问/test/create的时候你会发现也会提醒你没有权限。

如果你的gii模板是自定义的,相信你会迅速在其生成的模板中所有的操作上添加权限控制的,是不是很happy

最后,我们的菜单menu关于权限控制的讲解基本也就结束了,长篇大论,仔细回想起来也没多少东西,倒是希望能帮到你一二

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1123823.htmlTechArticleYii2 rbac权限控制之菜单menu实例教程,yii2rbac 在上篇文章给大家介绍了yii2搭建完美后台并实现rbac权限控制实例教程中完美实现了yii2的后台搭...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

thinkphpプロジェクトの実行方法 thinkphpプロジェクトの実行方法 Apr 09, 2024 pm 05:33 PM

ThinkPHP プロジェクトを実行するには、Composer をインストールし、Composer を使用してプロジェクトを作成し、プロジェクト ディレクトリに入り、php bin/consoleserve を実行し、http://localhost:8000 にアクセスしてようこそページを表示する必要があります。

thinkphp にはいくつかのバージョンがあります thinkphp にはいくつかのバージョンがあります Apr 09, 2024 pm 06:09 PM

ThinkPHP には、さまざまな PHP バージョン向けに設計された複数のバージョンがあります。メジャー バージョンには 3.2、5.0、5.1、および 6.0 が含まれますが、マイナー バージョンはバグを修正し、新機能を提供するために使用されます。最新の安定バージョンは ThinkPHP 6.0.16 です。バージョンを選択するときは、PHP バージョン、機能要件、コミュニティ サポートを考慮してください。最高のパフォーマンスとサポートを得るには、最新の安定バージョンを使用することをお勧めします。

thinkphpの実行方法 thinkphpの実行方法 Apr 09, 2024 pm 05:39 PM

ThinkPHP フレームワークをローカルで実行する手順: ThinkPHP フレームワークをローカル ディレクトリにダウンロードして解凍します。 ThinkPHP ルート ディレクトリを指す仮想ホスト (オプション) を作成します。データベース接続パラメータを構成します。 Webサーバーを起動します。 ThinkPHP アプリケーションを初期化します。 ThinkPHP アプリケーションの URL にアクセスして実行します。

laravelとthinkphpではどちらが優れていますか? laravelとthinkphpではどちらが優れていますか? Apr 09, 2024 pm 03:18 PM

Laravel フレームワークと ThinkPHP フレームワークのパフォーマンスの比較: ThinkPHP は、最適化とキャッシュに重点を置いて、一般に Laravel よりもパフォーマンスが優れています。 Laravel は優れたパフォーマンスを発揮しますが、複雑なアプリケーションの場合は、ThinkPHP の方が適している可能性があります。

thinkphpのインストール方法 thinkphpのインストール方法 Apr 09, 2024 pm 05:42 PM

ThinkPHP のインストール手順: PHP、Composer、および MySQL 環境を準備します。 Composer を使用してプロジェクトを作成します。 ThinkPHP フレームワークと依存関係をインストールします。データベース接続を構成します。アプリケーションコードを生成します。アプリケーションを起動し、http://localhost:8000 にアクセスします。

開発に関する提案: ThinkPHP フレームワークを使用して非同期タスクを実装する方法 開発に関する提案: ThinkPHP フレームワークを使用して非同期タスクを実装する方法 Nov 22, 2023 pm 12:01 PM

「開発に関する提案: ThinkPHP フレームワークを使用して非同期タスクを実装する方法」 インターネット技術の急速な発展に伴い、Web アプリケーションには、多数の同時リクエストと複雑なビジネス ロジックを処理するための要件が​​ますます高まっています。システムのパフォーマンスとユーザー エクスペリエンスを向上させるために、開発者は多くの場合、電子メールの送信、ファイルのアップロードの処理、レポートの生成など、時間のかかる操作を実行するために非同期タスクの使用を検討します。 PHP の分野では、人気のある開発フレームワークとして ThinkPHP フレームワークが、非同期タスクを実装するための便利な方法をいくつか提供しています。

thinkphpのパフォーマンスはどうですか? thinkphpのパフォーマンスはどうですか? Apr 09, 2024 pm 05:24 PM

ThinkPHP は、キャッシュ メカニズム、コードの最適化、並列処理、データベースの最適化などの利点を備えた高性能 PHP フレームワークです。公式パフォーマンステストでは、1秒あたり10,000以上のリクエストを処理できることが示されており、実際のアプリケーションではJD.comやCtripなどの大規模なWebサイトやエンタープライズシステムで広く使用されています。

開発アドバイス: ThinkPHP アプリケーションにログインする方法 開発アドバイス: ThinkPHP アプリケーションにログインする方法 Nov 22, 2023 am 11:24 AM

開発上の提案: ThinkPHP アプリケーションでロギングを実行する方法の概要: Web アプリケーションを開発する場合、ロギングは非常に重要なタスクです。これは、アプリケーションの実行ステータスをリアルタイムで監視し、問題を特定し、バグを解決するのに役立ちます。この記事では、ログの分類、保存場所、設定方法など、ThinkPHP アプリケーションでログを実行する方法を紹介します。同時に、ログ記録のベスト プラクティスも共有されます。 1. ThinkPHP のログ分類: ThinkPHP は複数のタイプのログ分類をサポートしています。

See all articles