谁一开始就是大神?

PHP 第14页

PHP

RBAC[2.0]

Beeyak阅读(101)

$auth = Yii::$app->authManager;

    // 添加 "createPost" 权限
    $createPost = $auth->createPermission('createPost');
    $createPost->description = 'Create a post';
    $auth->add($createPost);

    // 添加 "updatePost" 权限
    $updatePost = $auth->createPermission('updatePost');
    $updatePost->description = 'Update post';
    $auth->add($updatePost);

    // 添加 "author" 角色并赋予 "createPost" 权限
    $author = $auth->createRole('author');
    $auth->add($author);
    $auth->addChild($author, $createPost);

    // 添加 "admin" 角色并赋予 "updatePost"
    // 和 "author" 权限
    $admin = $auth->createRole('admin');
    $auth->add($admin);
    $auth->addChild($admin, $updatePost);
    $auth->addChild($admin, $author);

    // 为用户指派角色。其中 1 和 2 是由 IdentityInterface::getId() 返回的id (译者注:user表的id)
    // 通常在你的 User 模型中实现这个函数。
    $auth->assign($author, 2);
    $auth->assign($admin, 1);

上面是权威指南的代码,我想问一下上面写的createPost是指的控制器里的方法还是说控制器,假如说不同的控制器里面的方法名称都差不多或者有重复的怎么办?求大神

首先,从思想上不要把RBAC想的太神秘。
说白了,它其实就是类似,你有某个锁的钥匙,然后你才能打开它,一样的道理。
RBAC文档样例中的 createPost 也是一个钥匙。至于锁要放在哪边,就看你的业务逻辑了,可以只用一次 也可以多个地方用一个锁。
由于常见的业务都跟 用户 和 控制器 相关,所以我们才会习惯性的把 控制器路由的路径(比如 /module/controller/action 之类的) 设置为钥匙(权限名称)。
这样,当你访问某个控制器时,没钥匙,就会提示权限不足。
建议多结合框架进行测试,验证之后 心里就有底了 😉
createPost 就是一个 Permission 的名字而已

可以用控制器和方法名结合!仅仅是一个名称而已,只要你知道他是表示那个控制器那个方法就可以了。

$createPost 的值可以是角色可以是权限可以是url路由,保存在auth_item表里,其中的name是PRIMARY,不能重复
嗯嗯。平时可以多看看库名和代码的联系

表单页面怎么包含默认值?[2.0]

EllieFox阅读(94)

<?= $form->field($model, 'version') ?>
显示的是空白输入框,我怎么直接填入默认值呢?

默认值就是提前赋值
$model->version = ‘默认值’;
也可以用placeholder,输入任意内容后即消失
<?= $form->field($model, ‘version’, [‘placeholder’=>’提示默认值’]); ?>
提前赋值呗。$model->version = '默认值';
方法二:<?= $form->field($model, 'version')->textInput(['value'=>'默认值']) ?>
$model->loadDefaultValues();
难道不是这个?
这最佳答案给的,真low

多个数值存进一个字段[2.0]

Tinalovely阅读(101)

问一个小白问题,现在前端三个下拉框,选取三个值,想把三个值塞进一个字段,用逗号隔开,如果三个值都为空的话,里面就只存入两个逗号,虽然不会有什么影响,但是这样做是不是不好呢?

select 的 name值可以用 数组的形式
例如 name = value[]
后台获取到value[] 先判断是否为空 如果不为空就直接用 implode(‘,’, $value);
为空存进去不就没什么意义吗
挺好的,没啥不好。
超简单的问题,你可以把你存入的字段当成是一个对象,那对象又可以是JSON。那简单了,存JSON。取出来json_decode他就又变对象了,想怎么玩,就怎么玩

大家在实际开发中经常用Gii生产代码吗?如果用了一些后台模板,那生产的代码样式怎么处理?[2.0]

lovelemon阅读(112)

yii新手,
大家在实际开发中经常用Gii生产代码吗?
如果用了一些后台模板(如,adminlte,或者源码很多网友发布很好看的后台模板),
那gii生产的代码样式会自动和模板一致吗?不一致要自己手动修改?

你先看一下 Creating your own templates
刚开始你可以把模板放在项目内,根据自己的需要做些改动体会一下。
F12 html拷出来,自己改
可以更具后台模板去更改 你gii获取的代码 因为个人使用不同的后台模板 gii生产的 没法批量统一的 手动去统一 也已经快很多了 效率也是提高很多
views/layout下添加自己的样式
用gii提高效率啊,生成的代码自己修改下就行了
肯定是不一样的,你自己需要什么就修改什么呀,人家只是提供个模板

请教一下怎么再存入数据库之前去除字段中的Html标签吗?[2.0]

youthFox阅读(118)

请教一下 ActiveRecord 的 rules 可以再存入数据库之前 去除字段中的 Html标签吗?

可以啊,在rules中基于这个字段自定义一个验证规则就可以啦,例如:
[‘字段名’, function($attribute, $params) {
}]
然后在插入数据之前调用一下validate()就可以了。
$str=str_replace(“
“,””,$str);
//$str=htmlspecialchars($str);
return strip_tags($str);
http://www.jb51.net/article/39296.htm 里面又三种方法 可以去试下
学习了谢谢

Yii是否有什么办法可以是页面操作数据库的字段[2.0]

Anidolphin阅读(100)

项目的有个要求创建数据库,但是有多少个字段,字段的命名在web页面可以添加删除的,不知道是否有大神知道!!

做过类似的, 我的实现方式是建2张表,1表名表 2字段表,1表记录表的相关信息,2表记录每个具体字段信息, 在点击生成表的时候,读取1表,2表信息,拼接成新表的sql执行
phpmyadmin haha
adminer 单文件程序,好用的很。

建议查下 migrate 相关的资料,可以实现你说的需求
测试之后,你会发现,这个类通常是用在命令行里面的。
你可以尝试写一个继承的 数据库操作类

公共nav部分,如何根据页面不同而高亮[2.0]

Fionabubble阅读(104)

现在做个tp项目,有个问题,我想把公共的nav部分提取出来放在public文件中中,再引入,但是引入后只有首页active了,切换页面了也是,如果我不传参数,怎么判断当前是哪个页面

得有一个变量或者说参数来标记当前属于哪个类别,然后高亮。
或者你在每个页面上放一个通用的js,将nav的高亮修改成当前页面。
你可以通过js获取当前页面的URL,根据这个在js里写显示的不同样式
你公共页面nav是在layout 布局里的话, 那么可以通过对每个页面对应的控制器的传值到layout里;
控制器示例代码:
class OneController extends Controller
{
}
layout文件示例代码:


觉得有用可以关注我的博客(),pinyishou.com

一个自义字段录入后不能setAttribute怎么办?[2.0]

Kimfrog阅读(94)

比如要搜索金额范围,自定义了字段属性:

    /**
     * 订单金额大于等于
     * @return string
     */
    public function getMoney_start()
    {
        return '';
    }

    /**
     * 订单金额小于等于
     * @return string
     */
    public function getMoney_end()
    {
        return '';
    }

然后在orderSearch.php中配置搜索条件:

$this->setAttributes($params['OrderSearch'],false);

接下来录入搜索条件后发现$this->money_start和$this->money_end的值仍是空的。请问怎么解决?

自定义字段不一定要写get函数,可以直接定义属性:
你这里不就是赋的空值吗?
想要这个属性生效, rules 里也要有这个字段

视图继承[2.0]

AniEagle阅读(95)

新手一个,高级程序模板解压部署后,我新创建了一个控制器和视图,但显示的时候出现了一个页面的继承,请问该如何去掉,
如图所示,黑色部分就是继承的部分
4.png

1:父类 \yii\web\Controller有一个属性public $layout,默认值是views/layouts/main.php
你可以把这个值修改成你需要的layout路径,
2:或者返回结果不是用render,是用$this->renderPartial(); 或者$this->renderFile();
在控制器内将 $layout 声明为 false 即可,表示不使用 layout, 仅显示视图:

yiiselect2如何携带参数求大神教[2.0]

HaHLion阅读(102)

‘ajax’ => ‘care/searchsm’,

       'dataType' => 'json',
       'data' => new JsExpression('function(params) { return {q:params.term}; }') ],

如何携带自己想要的参数,比如$model->sex_id 这样的东西传递到后台

                       如何写求大神  

你用url:to生一个链接不是可以传参么
把你要的参数加到要传递的数据中去

登录

找回密码

注册