草庐IT

Activerecord

全部标签

php - 更好的 MongoDB 文档对象映射器设计模式

我是YiiMongoDbSuite的作者,该扩展在ActiveRecord模式中引入了MongoDB支持,与核心Yii中已有的SQL非常相似。我的代码变得非常流行,因为它的编写意图几乎与Yii的SQL数据库的原始方法相同,以缩短学习曲线,唯一的两个主要区别是缺乏关系支持(因为没有这样的mongo中的东西)和不同的标准对象。我发现我的代码非常有趣且易于使用,特别是对于已经使用过Yii的mongo新手,但我也发现/认为在开发新功能和使用我的代码几个月后,ActiveRecord设计模式不是对于面向文档的数据库来说是一个不错的选择,我也认为AR模式本身是mongo真正力量的限制器(即新的Do

php - Yii - 使用事件记录获取列的最小值、最大值

我正在使用事件记录。我们称模型为Product。我如何使用事件记录获取“从tbl产品中选择最小(价格),其中名称如‘%hairspray%’”? 最佳答案 你可以使用这样的东西:$criteria=newCDbCriteria;$criteria->select='MIN(price)asminprice';$criteria->condition='nameLIKE:searchTxt';$criteria->params=array(':searchTxt'=>'%hairspray%');$product=Product::m

php - 如何仅更新 Yii 中事件记录的特定字段?

我有一个模型(ActiveRecord),它具有5个属性(数据库列)。我获取特定记录并填充具有3个字段(不应更新其他两个字段)的表单。然后我更改特定字段并按保存。如何更新记录,不触及不在表单中的字段? 最佳答案 mazzucci指出的方法比必要的更复杂。试试这个:YourTable::model()->updateByPk($id,array('field1'=>NewVal1,'field2'=>NewVal2,'field3'=>NewVal3)); 关于php-如何仅更新Yii中事

php - yii2 BaseActiveRecord findAll()条件大于或小于

我有我测试的国家/地区数据库表(如在theguide中找到的)yii2开发应用。我有字段population我想在Country中创建一个公共(public)方法返回特定人口限制的所有国家的模型。即返回所有人口在x和y之间的国家。我尝试了以下方法://models/Country.php....publicfunctiongetPopulationBetween($lower,$upper){returnCountry::findAll(['population'=>[">=".$lower,"在CountryController中:publicfunctionactionGetBet

ActiverEcord Collection Count Count COMINED FIELD订购时给出mysql2 ::错误:“顺序子句”中的未知列

试图拨打ActivereCord::关系集合的算法正常,除非您将其加入如下:users=User.joins(:foos).select(['users.idasid','users.nameasname','sum(b.blah)asblah','max(foos.baz)asbazness']).joins('leftjointabley_thingsbonusers.id=b.user_id').group('users.id')users.count#noproblemusers.order('nameDESC').count#noproblemusers.order('bazness

Rails Activerecord回滚,反向反向反射

我有一个动作,在每个循环中执行一系列验证,将数据库提交每个循环的值EventSubscription创建EventSubscription.create!.如果某些验证失败,我想回滚先前承诺的交易。为此,我将代码放入ActiveRecord:Base.transaction块,但是当验证失败并提出异常时,救援块甚至没有执行,因此也不将其重定向到指示页面,我想重定向到该页面。这里有什么问题?你能帮忙吗?提前致谢!这是我的动作代码:defdownload_subscriptions_fileActiveRecord::Base.transaction(requires_new:true)dobeg

ruby-on-rails - 如何将 activerecord-sqlserver-adapter 与 TinyTDS *和* Windows 上的集成安全连接一起使用 *无需*以纯文本形式保存密码

我正在尝试使用Rails3.1。在Windows机器上使用activerecord-sqlserver-adapter(3.1.1)和tiny_tds(0.4.5)。在阅读有关TinyTDS及其对FreeTDS的使用时,我似乎可以通过将域限定名称作为用户名(例如DOMAIN\userbob)来使用集成安全性(又名Windows集成安全性/NTLM)。但是文档仍然要我在database.yml文件中输入域用户的密码。这是一种不好的做法,因为它不安全并且没有利用单点登录的优势,而单点登录正是集成安全性的一部分。我可以在不将密码以纯文本形式保存在文件中的情况下进行连接吗?例如develope

ruby-on-rails - 将 Activerecord 与 Redis 一起使用时出现错误

我只是想过一遍这个教程http://jimneath.org/2011/03/24/using-redis-with-ruby-on-rails.html#redis_and_rails当我将此代码放入lib/user.rb或app/models/user.rb时:classUser我收到这个错误:ActiveRecord::StatementInvalid:Couldnotfindtable'users'from/Users/jeremysmith/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.5/lib/active_record/

ruby - 在 redis 或 memcached (ruby) 中存储复杂对象

是否可以在不需要执行YAML::load/YAML::dump的情况下将复杂对象(即ActiveRecords)存储到像redis或memcached这样的数据库中?我正在寻找的是类似全局变量的东西a)在线程间共享b)重新启动我的网络服务器时不刷新(这是可选的)想要做的事情是创建一个缓存来存储多个方法的结果。目前我正在使用$globalvar,但我担心使用多线程网络服务器时会发生什么。这个项目的代码可以在这里找到:https://github.com/florianeck/3d_cache/blob/master/lib/three_d/class_method_cache.rb我对每

php - 在 Yii2 中同时使用 Redis 和 MongoDB ActiveRecords

我有MongoDB事件记录(模型),我想知道是否可以使用Redis从Redis的存储中自动设置/获取/删除模型。例如,如果我要运行:MyModel::find()->where(["id"=>1])->one();有没有办法让Redis存储结果并在我下次运行相同代码时返回它?此外,如果我要使用id=1更新模型,我希望Redis会使缓存失效。这一切都可能吗? 最佳答案 使用哪个数据库并不重要。它是关于如何实现它们的。Yii在配置文件中设置了这两个组件:db:在需要时使用的数据库连接,如ActiveRecord表示模型的类或QueryB