Yii

Yii - how to retrieve model data into a layout page?

旧街凉风 提交于 2019-12-28 12:48:30
问题 I wish to list some Categories name on my layout main.php page. Since the layout doesn't have any associated controller or model, I wish to create a static method like this on Category model: public static function getHeaderModels() { // get all models here return $models; } and then in the main layout <?php $models = Category::getHeaderModels(); foreach($models as $model) { // .... } ?> My question is a very basic one: How can I retrieve those category names from the model ? Here is the full

Yii - how to retrieve model data into a layout page?

北战南征 提交于 2019-12-28 12:46:18
问题 I wish to list some Categories name on my layout main.php page. Since the layout doesn't have any associated controller or model, I wish to create a static method like this on Category model: public static function getHeaderModels() { // get all models here return $models; } and then in the main layout <?php $models = Category::getHeaderModels(); foreach($models as $model) { // .... } ?> My question is a very basic one: How can I retrieve those category names from the model ? Here is the full

Yii renderpartial (proccessoutput = true) Avoid Duplicate js request

邮差的信 提交于 2019-12-28 05:30:13
问题 Im creating a site who works with ajaxRequest, when I click a link, it will load using ajaxRequest. When I load for example user/login UserController actionLogin , I renderPartial the view with processOUtput to true so the js needed inside that view will be generated, however if I have clientScriptRegister inside that view with events, how can I avoid to generate the scriptRegistered twice or multiple depending on the ajaxRequest? I have tried Yii::app()->clientScript->isSCriptRegistered(

YII2中behavior行为的理解与使用

北城余情 提交于 2019-12-27 14:31:44
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> YII2中的行为说白了就是对组件功能的扩展,在不改变继承关系的条件下。 行为附加到组件后,行为将注入自已的方法和属性到组件,可以像组件访问自定义的方法和属性一样访问行为。 注意行为是对功能的扩展,不要乱用行为,比如有一个动物类和一个人类,他们各自有自已的名称,身高,体重,这些是属性。 他们都会跑,这个时候我们就可以抽象出来做成一个跑的行为,根据不同需求来扩展他们。 这里我们有两个控制器一个GoodsController,一个OrderController,他们都接收请求,返回数据给客户端,不过有的需要返回json,有的需要返回xml。 那么我们就创建一个返回数据行为来扩展这两个控制器。 我们在项目目录下创建common目录,并创建ReturnBehavior.php,代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 <?php namespace app\common; use YII; use yii\base\Behavior; use yii\web\Controller;

Yii2中ACF和RBAC

ぃ、小莉子 提交于 2019-12-27 04:04:42
ACF ( Access Control Filter ) ACF ( Access Control Filter )官网的解释就是一个可以在模型或控制器执行 行为过滤器 ,当有用户请求时,ACF将检查access rules (权限规则),在决定是否让这个用户请求这个行为。 在控制器中使用 public function behaviors() { return [ 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'delete' => ['POST'], ], ], //ACF过滤 'access' => [ 'class' => AccessControl::className(), 'rules' => [ [ //是否云允许 相符合匹配规则 roles 执行这些动作 'allow' => true, //可执行的动作 'actions' => ['login', 'index', 'error'], ///游客未经认证 'roles' => ['?'], ], [ 'allow' => true, //可执行的动作 'actions' => ['logout', 'index','view','update'], // 已认证用户 'roles' => ['@'], ], ], ] ]; }

Yii2-admin RBAC权限管理的实现

亡梦爱人 提交于 2019-12-27 04:03:05
yii2-admin是yii2 rbac的一套管理工具,实现了漂亮的界面和完整的权限管理功能,不用自己再去写权限代码了,使用之前请将yii2的源码更新到最新版本. git源码地址:https://github.com/mdmsoft/yii2-admin 安装yii2-admin: 1、首先切换到项目目录下 2、执行该语句:composer.phar require mdmsoft/yii2-admin 注:如果提示could not open input file composer.phar 请先执行下面两条语句 composer self-update composer install --prefer-dist 3、composer完成后在项目下的配置文件中加入下列配置项 'aliases' => [ '@mdm/admin' => '$PATH\yii2-admin-1.0.3', ], 'modules' => [ 'admin' => [ 'class' => 'mdm\admin\Module', 'layout' => 'left-menu', // it can be '@path/to/your/layout'. /**/ 'controllerMap' => [ 'assignment' => [ 'class' => 'mdm\admin

yii rbac管理

╄→尐↘猪︶ㄣ 提交于 2019-12-27 03:58:32
以下是Controller代码 <?php /** * Created by PhpStorm. * User: zhoukang * Date: 2017/6/11 * Time: 19:31 */ namespace frontend\controllers; use yii\web\Controller; use frontend\models\Rbac; use yii; use frontend\models\Loginform; class RbacController extends Controller { public function actionIndex(){ return $this->render('index',['message'=>'您正在使用的是权限控制']); } //创建角色 public function actionCreaterole(){ $model = new Rbac(); return $this->render('role',['model'=>$model]); } //将创建的角色入库 public function actionDoadd(){ $role = Yii::$app->request->post('Rbac'); $item = $role['role']; $auth = Yii::$app-

yii 自带RBAC

戏子无情 提交于 2019-12-27 03:57:33
common:中加 'authManager' => [ 'class' => 'yii\rbac\DbManager', 'itemTable' => 'auth_item', 'assignmentTable' => 'auth_assignment', 'itemChildTable' => 'auth_item_child', ], yii中自带的四张表: vendor/yiisoft/yii2/rbac/migrations/schma-mysql.sql 还加一个user表: DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `auth_key` varchar(32) NOT NULL, `password_hash` varchar(255) NOT NULL, `password_reset_token` varchar(255) DEFAULT NULL, `email` varchar(255) NOT NULL, `role` smallint(6) NOT NULL DEFAULT '10', `status` smallint(6) NOT NULL

yii rbac

我怕爱的太早我们不能终老 提交于 2019-12-27 03:56:43
一、简介 什么是rbac ? rbac是就是基于角色的访问控制。 yii提供一套基础的底层接口,我们知道,rbac经历好几个阶段,从rbac0到rbac3,从基础的用户、角色、权限,到动态的rbac处理模式,再到现在的权限继承,解决复杂的多页面元素权限分配。 总而言之,rbac有三个特性。 1. 基础: 角色、权限、用户 三大体系。 2. 权限继承: 角色派生原则,一个角色可以派生多个低权限角色。例如:总经理 =》经理、副经理、营运等 3. 权限分配: 权限分配必须从基础权限到高级权限,如果想拥有高级权限必须现拥有基础权限。例如:一个系统,我想拥有所有的权限。首先,我们必须现拥有查看所有菜单和子菜单的权限,然后,在拥有页面元素操作的权限,即增、删、改、查及其他。 yii提供的接口,实现了rbac的基础功能,路由的控制、页面元素和菜单的显示、隐藏等。作为合格的程序员,思想的层次有时候决定你的技术层次。因为yii提供了基础,那么我们可以在它的接口上结合具体项目需求去拓展rbac的功能。 具体如下: 我需要一个菜单表,来存储的模块,以垂直分表 的形式,实现无限极目录。 表字段: name(名称:primary key) route(路由) pid(父ID) ... 此表以三级联动,动态的添加权限、角色,记录模块的层次等级,菜单=》子菜单=》功能、页面元素。 例如: 权限管理 伪路由

Yii RBAC

爱⌒轻易说出口 提交于 2019-12-27 03:55:31
\common\config\main.php或者\backend\config\main.php中加 'authManager' => [ 'class' => 'yii\rbac\DbManager', 'itemTable' => 'auth_item', 'assignmentTable' => 'auth_assignment', 'itemChildTable' => 'auth_item_child', ], yii中自带的四张表: vendor/yiisoft/yii2/rbac/migrations/schma-mysql.sql 复制里面的内容在mysql中运行 还要自己加一个user表: DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `auth_key` varchar(32) NOT NULL, `password_hash` varchar(255) NOT NULL, `password_reset_token` varchar(255) DEFAULT NULL, `email` varchar(255) NOT NULL, `role` smallint