草庐IT

activerecord-relation

全部标签

php - Yii2:在 ActiveRecord 的 with() 中使用 realtion 的范围

在Yii1中我可以这样做:$posts=Post::model()->with(array('comments'=>array('scopes'=>array('recently','approved')),))->findAll();有没有办法在Yii2的with()回调函数中调用关系的范围?Customer::find()->with(['orders'=>function($query){$query->andWhere('status=1');},'country',])->all(); 最佳答案 一个干净的解决方案是覆盖模

php - *特别是*,是什么让 DataMapper 比 ActiveRecord 更灵活?

我正在比较Doctrine2andPropel1.5/1.6,我正在研究他们使用的一些模式。Doctrine使用DataMapper模式,而Propel使用ActiveRecord模式。虽然我可以看到DataMapper相当更复杂,但我认为这种复杂性会带来一些设计灵active。到目前为止,我发现在ActiveRecord上使用DataMapper的唯一合理原因是DataMapper在单一责任原则方面更好——因为数据库行不是被持久化的实际对象,但Propel并不是这样让我担心,因为它无论如何都是生成的代码。那么——是什么让DataMapper更加灵活? 最佳

php - Symfony2 和 Doctrine : OneToMany relation duplicates data in the table

我有两个表:文章和电子邮件。电子邮件表将包含与特定文章相关的电子邮件,例如:id|article_id|email1|1|test@etest.com2|1|test2@test.com3|2|test@etest.com4|2|test3@test.com等等......article_id与articles表中的id存在关联。在我的实体中,我有这段代码:classArticles{..../***@ORM\OneToMany(targetEntity="\Acme\DemoBundle\Entity\Emails",mappedBy="articles")*/private$ema

php - Symfony2 : Doctrine does not load related entities in many-to-many relation

我有一个多对多关系,当我加载位于此关系一侧的实体时,我希望将另一侧相关实体的ArrayCollection视为其属性。然而,这并没有发生——加载的ArrayCollection中没有任何元素,而在数据库中我可以看到相关条目。可能是什么原因?这是我的代码:关系的一侧,ConsolidatedReport类:/***@varArrayCollection**@ORM\ManyToMany(targetEntity="P24\Response",inversedBy="consolidatedReports")*@ORM\JoinTable(name="con_rprt_responses"

php - 子查询 ActiveRecord Yii

是否可以在Yii的ActiveRecord中进行子查询?我有这样的查询:从表1中选择*wheretable1.field1in(selecttable2.field2fromtable2)我目前正在使用以下代码:object1::model()->findAll(array('condition'=>'t.field1in(selecttable2.field2fromtable2)'))[编辑]我想知道是否有一种方法可以在不使用SQL且不使用连接的情况下构造子查询。有什么解决办法吗?提前致谢。 最佳答案 首先通过db字段查找dou

php - 大型应用ActiveRecord的设计问题

在大多数框架中,您都有表示数据库中行的模型类。例如php代码:classUserextendsModel{}我给了LaravelEloquent例子,但这对大多数php框架都是正确的。然后在类中添加关系:publicfunctionpictures(){return$this->hasMany('App\Picture');}然后你添加一些这样的方法:publicfunctiondeleteComments(){//deletecommentscodehere}我的第一个问题是:这是好的设计架构吗,因为多年后当项目变大时,您将与用户建立许多关系(图片、评论、帖子、订阅等)。该类可能会变

php - Yii2:如何缓存 ActiveRecord 关系所做的查询

我有新闻表及其相关的新闻评论表。我已经用news_comment表定义了关系newsComment。如果我执行这个查询:$result=News::getDb()->cache(function()use($id){returnNews::find()->with('newsComment')->where(['news.id'=>$id])->one();});只有从新闻表中获取数据的查询才会被缓存。从相关表中选择的查询不是。是否可以同时缓存主查询和为从相关表中检索数据而执行的查询,而不必单独编写它们? 最佳答案 试试这个:$db

php - 领域驱动设计 : Handling complex entities with many states and relations (Real Estate)

所以我对DDD还很陌生,我正在尝试为我现在的雇主(房地产代理)构建一个可扩展且灵活的系统,这将帮助我们加快公司内部程序。如前所述,我们从事房地产行业。我正在尝试定义我们的UL,但在概念化某些复杂实体时遇到了问题。例如:在房地产行业,“属性(property)顾问”将拜访潜在的“客户”,并对他们的“属性(property)”进行“评估”。上市时,此“评估”成为“上市”,也可以成为“已售出属性(property)”或“撤回属性(property)”。“属性(property)”可以处于多种不同的状态。我应该将“属性(property)”定义为一个实体,还是应该将每个单独的状态(评估、上市、

php - ActiveRecord + CodeIgniter - 从查询返回单个值,而不是数组形式

假设您构建了一个始终只返回单个值的事件记录查询,您如何只处理该单个值而不是获取一个数组作为返回值?例如,我正在使用ActiveRecord查询返回单个列的SUM,它只会返回一个SUM,而不必解析数组有没有办法将值分配为函数返回等于该值获取数组? 最佳答案 $query=$this->db->get();//yourActiveRecordquerythatwillreturnacolcalled'sum'echo$query->row('sum'); 关于php-ActiveRecord

java - 解析 : How can I get Relation from a local data store (. ..fromLocalDatastore())?

我正在开发一个应用程序作为学习,我正在使用Parse(parse.com)作为数据源。我在解析中下载我的类的所有对象并保存到具有解析的本地存储。以下代码fragment执行其中一项下载:publicvoidnoticia_getOrUpdate(booleanisUpdate)throwsParseException{ParseQueryquery=newParseQuery(Noticia.class);query.orderByDescending("createdAt");ListlNoticias=null;try{if(isUpdate){lNoticias=query.wh