子类中的 Yii 模型行为继承了 AR 模型类

2024-01-28

我已经实施了一个crypt可以附加到 AR 模型的行为类,以便附加属性将以加密形式存储并以解密字符串形式检索。

class User extends CActiveRecord 
{
    public function behaviors()
    {
        return array(
            'crypt' => array(
            // this assumes that the behavior is in the folder: protected/behaviors/
            'class' => 'application.behaviors.CryptBehavior',
            // this sets that the attributes to be encrypted/decrypted are encryptedfieldname of the model
            'attributes' => array('password'),
            'useAESMySql' => true
           )
        );
    }
}

这工作正常。我也在上我的定制课程Myuser这延伸了User模型来编写我的自定义函数,这样如果我在我的user表和重新生成模型,我不会丢失自己的功能。

如果我移动我的behavior类的函数MyUser, 该行为没有依附并且没有按预期工作.

class MyUser extends User 
{
    public function behaviors()
    {
        return array(
            'crypt' => array(
            // this assumes that the behavior is in the folder: protected/behaviors/
            'class' => 'application.behaviors.CryptBehavior',
            // this sets that the attributes to be encrypted/decrypted are encryptedfieldname of the model
            'attributes' => array('password'),
            'useAESMySql' => true
           )
        );
    }

    public function customfn1()
    {
         //some code goes here...
    }
}

任何帮助,将不胜感激。 参考链接:地穴行为 http://www.yiiframework.com/forum/index.php/topic/26435-aes-encryption/page__view__findpost__p__127764


这是工作解决方案。我需要测试所有场景。感谢@bool.dev 的贡献。

class MyUser extends User 
{
    public static function model($className=__CLASS__)
    {
       return parent::model($className);
    }

    public function behaviors()
    {
        return array(
            'crypt' => array(
            // this assumes that the behavior is in the folder: protected/behaviors/
            'class' => 'application.behaviors.CryptBehavior',
           // this sets that the attributes to be encrypted/decrypted are encryptedfieldname of the model
            'attributes' => array('password'),
           'useAESMySql' => true
          )
       );
    }

   public static function getUserByID($id)
   {
      //validation of $id goes here..

      return MyUser::model()->findByPk($id);
   }
}

在我的控制器中

$userModel = MyUser::getUserByID(1);

在我看来

$userModel->password; //gives me the decrypted password; for easy understanding, i used password field here....
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

子类中的 Yii 模型行为继承了 AR 模型类 的相关文章

  • 如何跨多个域重用代码?

    我只是使用 Yii 框架构建了一个 CMS 框架 我想将 CMS 部署到多个域 home root www domain1 com home root www domain2 com home root www domain3 com ho
  • 使用 Yii STAT 进行分组聚合?

    我有一个Yii STAT 关系 http www yiiframework com doc guide 1 1 en database arr statistical query其定义是为了提供分组SUM结果 但是当我在视图中访问关系时 t
  • Rails 3 ActiveRecord API:.build 方法

    我对 Ruby RoR 相当陌生 一年多了 我注意到 RoR 或 Ruby 内部有几种不同的方法基本上做同样的事情 我想要得到某种澄清的一种方法是 build方法 什么时候使用它是有效的 或者如何以最好的方式使用它 算是一回事 Thanks
  • Rails 如何处理模型中的错误和异常

    所以我使用 twitter 库解析 Rails 中 twitter api 的数据 有时 api 的响应可能是这样的 error Invalid parameter 模型会引发异常 现在我默默地捕获它并将 error message 放入日
  • Yii CDBCommand getText 显示 SQL 中的所有变量

    我正在使用 Yii 的 Yii app gt db gt createCommand 来构建 SQL 查询 为了查看 Yii 生成的 SQL 代码 我使用 CDBCommand 的 getText 方法 问题是 当我在包含参数的 SQL 代
  • 仅在模块中加载 Yii Bootstrap

    我尝试仅在管理模块中加载 Yii Bootstrap 扩展 但它不起作用 我假设我需要预加载它或以某种方式启动它 谢谢 class AdminModule extends CWebModule public function init im
  • yii:无法使用“through”获取图片

    我是一个yiibie 我陷入了一个问题 我制作了一个名为ngopage php在我的视图文件中 我可以从我的视图中获取数据Ngo表 但我无法得到Picture正在撰写任何评论的用户的ngo针对特定的 idngo 用户的图片位于profile
  • 向 yii2 活动记录模型添加不在数据库中的属性

    我有一个 mySQL 数据库 其中有一个表videos和两列 开始时间 and end time 其格式为2017 01 24 15 38 11 我有一个活动记录模型Videos延伸 yii db ActiveRecord我想添加一些数据库
  • 重用named_scope来定义另一个named_scope

    我所看到的问题本质 有一天 如果我没有记错的话 我看到了一个重用一个named scope来定义另一个named scope的例子 像这样的东西 不记得确切的语法 但这正是我的问题 named scope billable conditio
  • 获取当前 URL/URI,不带某些 $_GET 变量

    在 Yii 中如何获取当前页面的 URL 例如 http www yoursite com your yii application lg pl id 15 但不包括 GET lg 无需手动解析字符串 我的意思是 我正在寻找类似的东西Yii
  • 查找所有具有重复名称的用户

    我有具有名字和姓氏字段的用户 我需要做一个 ruby 查找根据名字和姓氏具有重复帐户的所有用户 例如 我想要一个查找功能 可以搜索所有其他用户 并查找是否有任何用户具有相同的姓名和电子邮件 我在想像这样的嵌套循环 User all each
  • YII 使用 gzip 压缩应用程序输出

    下面的代码有两个事件 有什么好处 它实际上在做什么 require once yii app Yii createWebApplication config Yii app gt onBeginRequest function event
  • has_many 关系的动态 class_name

    我正在尝试与动态 class name 属性建立 has many 关系 class Category lt ActiveRecord Base has many ads class name gt lambda return self i
  • Rails has_many 通过使用 source 和 source_type 为多种类型设置别名

    这是一个示例类 class Company lt ActiveRecord Base has many investments has many vc firms through investments source investor so
  • AR模型中的关系函数,多对一关系

    所以这是场景 我有两个表 问题和项目 一个项目可以有多个问题 一个问题只能是一个项目 既然Issue是多对一的 那么你必须定义它吗 因为我知道在项目模型中我有 public function relations return array i
  • 销毁/删除 Rails 中的数据库

    是否可以从现有应用程序中完全删除数据库和所有迁移记录等 以便我可以从头开始重新设计数据库 通过发行rake T您有以下数据库任务 rake db create Create the database from DATABASE URL or
  • 有没有类似 ActiveRecord::Migration for .NET 的东西?

    我玩过 ruby on Rails ActiveRecord Migration类 我喜欢保持数据库模式版本化是多么容易 我想在我的 ASP NET 项目中做类似的事情 我想知道是否有人听说过一个可以执行以下操作的工具ActiveRecor
  • 如何在不加载关联模型的情况下检查 has_one 是否存在

    我有一个简单的 has one 关系 class User lt ApplicationRecord has one detail has many courses end class Detail lt ApplicationRecord
  • Yii中的组件、扩展和模块有什么区别

    我是 Yii 框架的新手 刚刚遇到module 扩大 成分在受保护的文件夹内 任何人都可以从理论上和实践上区分所有这些 成分是可以帮助您根据模型编写业务逻辑的类 假设所有模型文件都使用相同的逻辑 这样逻辑就可以编写在组件内部 而不是为每个控
  • 使用“INSERT ... ON DUPLICATE KEY UPDATE”插入多条记录

    我的表结构 table marks 我的目标 我想用条件插入或更新多条记录 我目前正在通过此查询进行检查 第一步 SELECT FROM marks WHERE student 115 AND param 1 第二步 if records

随机推荐

  • 在 Joomla! 中设置页面标题3 来自模块

    我有一个现有模块 我使用 loadposition custom position 从文章中显示该模块 该文章链接到一个菜单项 我希望能够从此模块设置自定义页面标题 覆盖菜单项设置的页面标题 我尝试使用 document JFactory
  • 将图像从 Android 发送到 ASP.NET Web 服务

    我正在开发一个 Android 应用程序 它应该将图像发送到我的 ASP NET Web 服务 图像将保存为文件 我已经看到了几种方法可以做到这一点 我选择了这种方法 将图像转换为字节数组 gt 将字节数组转换为字符串 gt 使用 KSOA
  • 在 CFMutableDictionary 中存储 C 结构体

    由于 Core Foundation 中没有与 NSValue 对应的对象 我们该如何将 C 结构体存储在 CFMutableDictionary 中呢 首先 您可以按原样将 NSvalue 放入 CFMutableDictionary 中
  • 移动 WordPress 域

    我不敢相信移动 WordPress 域名是如此复杂 我安装了 WordPress 并使用基于 woocommerce 的主题设置了一个在线商店 安装 better wp 安全插件后 我为我的在线商店购买了一个域名 我将域名的DNS指向我的托
  • 样式表规则解释小数点后有多少位?

    所以最近我偶然发现这个答案的CSS https stackoverflow com a 17504805 457268 larger width 66 66666666 smaller width 33 333333333 这让我开始思考
  • 通过 wicket 下载 zip 文件

    我正在使用 wicket 框架 并且我已经通过 Java 代码制作了一个 zip 文件 我想要一个下载它的链接 我不知道是否可能 或者我应该通过 wicket 但不是 Java 制作 zip 文件然后有一个下载链接 看一眼ZipResour
  • 通过php更新jira中的状态

    我正在使用我构建的电子邮件客户端来更新 jira 任务 我已经成功地通过它更改了受让人和摘要 但我似乎找不到更新状态的方法 以下是我使用的代码 resolution gt id 4 update gt transitions array r
  • 不推荐使用 Int 和 Int 类型参数的恒等式

    仅供参考 这是我在 StackOverflow 上的第一个问题 而且我对 Kotlin 还很陌生 在开发一个完全使用 Kotlin 版本 1 1 3 2 的项目时 我在以下代码中看到一条警告 以及给好奇的小伙子们的评论 Code below
  • 在 scipy 中使用 L-BFGS-B 时出错

    在 scipy optimize minimize 中使用 L BFGS B 方法时 我得到一些令人费解的结果 import scipy optimize as optimize import numpy as np def testFun
  • 从列中提取第一个单词并插入到新列中[重复]

    这个问题在这里已经有答案了 我下面有一个数据框 想要提取第一个单词并将其插入到新列中 Dataframe1 COL1 Nick K Jones Dave G Barros Matt H Smith 将其转换为这样 Dataframe2 CO
  • “PyDevTerminalInteractiveShell”对象没有属性“has_readline”

    我在用Pycharm 2016 1 on CentOS7我正在测试 Show command line afterwards 我遇到了这个问题 AttributeError PyDevTerminalInteractiveShell obj
  • 何时使用 poll C 函数的 POLLOUT 事件?

    我写了一个小型 TCP 服务器socket POLLIN poll recv send 但我不知道什么时候使用POLLOUT轮询或选择writefds轮询可写事件 谁能给我一个实际用法的例子POLLOUT 通常的模式是使用非阻塞文件描述符p
  • 哪种 Java 设计模式最适合 if-else 语句(包括循环)?

    我有一个 7 8 if else 的用例 示例用例 String type List lt Entity gt entityList if type equals A ClassA a new ClassA a performTask fo
  • Laravel/lumen 5.2 从现有数据库生成迁移表

    是否可以从 lumen laravel 5 2 中的现有数据库生成迁移模式 有包吗 我将lumen连接到magento数据库 现在我需要使用eloquent 我没有时间为每个表制作迁移模型 您可以先转储数据库mysql转储 http dev
  • 在 go 中使用curl和命令

    我使用 Go 和命令来执行curl其按预期工作 curl exec Command curl https services odata org V3 northwind northwind svc out err curl Output i
  • Android - getHeight() 和 getWidth()

    我在relativeLayout中动态创建一些ImageView 但我需要尺寸根据屏幕的高度和宽度而变化 在我设置高度时 视图和布局尚未创建 这意味着getHeight and getWidth 返回 0 我查看了 StackOverflo
  • 实体框架 - 通过更改外键更新关系

    我有以下两个模型和 DbContext public class TestDbContext DbContext public IDbSet
  • 通过 SUDS 发送 xml

    我想使用 WSDL 通过 SUDS 发送我的手工构建 xml 我发现我可以这样做 xml Raw
  • MINGW64 上的堆栈测试输出乱码

    我在 Windows 10 上使用 Stack 运行 GHC 并在大部分日常工作流程中使用 Git Bash MINGW64 这包括使用 GHC 和 GHCi 它们通常工作得很好 然而 当我跑步时stack test从 MINGW64 开始
  • 子类中的 Yii 模型行为继承了 AR 模型类

    我已经实施了一个crypt可以附加到 AR 模型的行为类 以便附加属性将以加密形式存储并以解密字符串形式检索 class User extends CActiveRecord public function behaviors return