我已将Product与其子图像建立了关系。正常的一对多关联。
使用以下代码,我可以在对象中获取子图像:
$product->getImages();
我想通过图像来修改某些内容,我这样做:
foreach ($product->getImages() as $Image) {
// do something
}
只有图像有一个名为seq的字段,这是一个代表图像顺序的数字。如何订购与序号相关的对象?
谢谢!
答案 0 :(得分:3)
您必须为此使用注释@orderBy。请使用类似
的内容<?php
/** @Entity **/
class Product
{
/**
* @OneToMany(targetEntity="Image")
* @OrderBy({"seq" = "ASC"})
**/
private $images;
}
答案 1 :(得分:0)
您可以在Doctrine关系中添加注释(但这会影响您对集合所做的所有访问,并且您无法实现其他排序方法)或您可以实现自定义使用条件标准过滤产品实体本身(请参阅一些示例here)。
例如:
app.factory('test', [function(){
var fac = {};
fac.users = ['john', 'james', 'jake'];
return fac;
}]);
app.controller('dashboardCtrl', [
'$scope',
'test',
function($scope, test){
$scope.testFunction = function(){
console.log(test.users);
}
}
]);
希望这个帮助
对于简单的场景,@ Liju P M发布的解决方案很好
答案 2 :(得分:0)
在symfony 3.4中你应该成功
/**
* @ORM\OneToMany(targetEntity="Image")
* @ORM\OrderBy({"seq" = "ASC"})
**/
并且不要忘记使用陈述
use Doctrine\ORM\Mapping as ORM;