草庐IT

Activerecord

全部标签

php - Yii2 有很多自定义条件

我有sql条件SELECT*FROM(SELECT*FROMPricesWHEREaliasId=:aliasIdorderbyiddesc)p1groupbyp1.currency我正在尝试在hasMany语句中使用它。$q=$this->hasMany(Prices::className(),['aliasId'=>'id']);$db=\Yii::$app->db;$query=$db->createCommand('SELECT*FROM(SELECT*FROMPricesWHEREaliasId=:aliasIdorderbyiddesc)p1groupbyp1.curren

php - 使用 with 语句时,使用 AR findAll 函数只返回一个对象

我在安装Yii时遇到问题,我试图返回一个相当基本的查询,但我没有得到在线教程说我应该得到的结果。我有2个模型,大致如下所示:定价:classPricingextendsCActiveRecord{/***ReturnsthestaticmodelofthespecifiedARclass.*@paramstring$classNameactiverecordclassname.*@returnPricingthestaticmodelclass*/publicstaticfunctionmodel($className=__CLASS__){returnparent::model($c

php - 进行 CodeIgniter 数据库查询

有人可以帮我用CodeigniterActiverecord完成这个查询吗?:我有一个包含两个值的int数组:$prices=array([0]=>23,[1]=>98);howicanmakesomethinglike:return$this->db->query("select*fromproductwherepriceIN(?)",array(implode(',',$prices))->result();请帮忙。 最佳答案 试试这个(未经测试)$query=$this->db->from('product')->where_

php - SQL 到 ActiveRecord 条件

我正在尝试在ActiveRecord条件中重现以下SQL:SELECTCOALESCE(price,standardprice)ASpriceFROMtable1LEFTJOINtable2ON(pkTable1=fkTable1)WHEREpkTable1=1到目前为止,我有以下内容:$price=Table1::model()->find(array("select"=>"COALESCE(price,standardprice)ASprice",'with'=>array('table2'=>array('joinType'=>'LEFTJOIN','on'=>'pkTable1

php - 将对象集合限制为唯一的集合

目前我有一个名为Collection的PHP类。它使用一个数组来保存一组唯一的对象。它们是唯一的,不是因为它们具有不同的内存地址(尽管显然它们确实如此),而是因为集合中没有等效对象。我一直在阅读有关SplObjectStorage的文章,它比数组具有显着的速度优势,并且可能比我的Collection类更容易维护。我的问题是SplObjectStorage本身不关心等效性,只关心身份。例如:classFoo{public$id;function__construct($int){$this->id=$int;}functionequals(self$obj){return$this->i

php - 如何将派生列添加到我的 Yii 模型?

在Yii中,我需要向模型中的任何结果集添加一个“派生”列。该列实际上并不存在于数据库表中。例如,假设我有一个Activity模型。只有两种类型的事件:(1)收入,或(2)费用。如果我想添加一个名为income_total或expense_total的列(取决于正在访问的事件的类型),我将如何这样做吗?这是RubyonRails中Activity模型的一个工作示例(我基本上想知道如何做同样的事情,但在Yii中):classActivity{:category=>'Income'}scope:expenses,:conditions=>{:category=>'Expense'}defse

php - 用于具有 NULL 值的复合键的表的关系 Yii ActiveRecord

为了在某些站点上存储用户定义的书签,我有一个包含复合键的表:CREATETABLEbookmarks(user_idintnotnull,book_idintnotnull,page_idint,...);CREATEUNIQUEINDEXONbookmarks(user_id,book_id,page_id);请注意,page_id可以为NULL,而user_id和book_id不能。当page_id为null时,为整本书设置书签,否则-为特定页面。对应的ActiveRecord类定义了一些关系:publicfunctionrelations(){returnarray("user"

php - __call 捕获静态方法调用

我正在使用这两种魔术方法_call和_callStatic用于我自己的ORM/Activerow之类的实现。它们主要用于捕获某些函数调用:__call负责getter和setter,而__callStatic用于findBy方法(例如findById).为了映射外键,我正在尝试将调用转换为例如getArticle返回Article::findById()的值。为此,我在我的__call中使用了这个案例:if(strstr($property,"_id")){return$foreignClass::findById($this->getId());}其中$property是__call

php - 在CodeIgniter中查看update_batch()是否成功

我在CodeIgniter的表上运行update_batch(),我想检查它是否成功。我试过使用affected_rows(),但它只计算已修改的表单字段的数量,所以它并没有完全减少它:$this->db->update_batch("sections",$data,"alias");log_message("debug","itemsinform:".count($data));//itemsinform:3log_message("debug","rowsupdated:".$this->db->affected_rows());//rowsupdated:0-3//dependi

php - 遍历具有私有(private)属性的对象

我将PHP与php事件记录一起使用。当我从数据库中检索记录时,属性被列为私有(private)。我需要遍历属性并检索键=>值对。如何才能做到这一点?$row=\Models\Locations::find(2);Models\LocationsObject([errors]=>[attributes:ActiveRecord\Model:private]=>Array([id]=>2[customer_id]=>6[name]=>testlocation[address_line1]=>123testDrive[address_line2]=>[city]=>MoonTownship[