我有2个实体:Country(id,name)和Mapping(id,object,internalId,externalId).国家和地图未与关联相关联(因为"映射"不仅包含国家/地区的行).我需要使用以下条件获取国家/地区的外部ID:
country.id = mapping.internalIdmapping.object = 'country'所以我计划在Country中添加函数getExternalId()
function getExternalId() {
$em = Registry::getEntityManager();
$mapping = $em->getRepository('Mapping')->findOneBy(array(
'object' => 'country',
'internalId' => $this->getId()
));
return !empty($mapping) ? $mapping->getExternalId() : false;
}
Run Code Online (Sandbox Code Playgroud)
问题:
提前致谢!
这就是我能够使用它的id获取用户实体的方式:
$userEntity = $em->getRepository('ModelBundle:User')->find($userId);
Run Code Online (Sandbox Code Playgroud)
有没有办法根据这个$ userEntity获取上一个和下一个实体?
例如:我获取$ userEntity并且它的id为100,现在我想要获取前一个实体,无论它的id为99,80,70,无论它是什么!与下一个实体的情况相同..
我已经可以使用一些PHP黑客获取下一个和上一个,但是我正在寻找更好的方法..
编辑: 只是为了澄清我正在寻找面向对象的方法,如下所示:
$userEntity = $em->getRepository('ModelBundle:User')->find($userId);
$previousUserEntity = $userEntity->previous(); //example
$previousUserEntity = $userEntity->next(); //example
Run Code Online (Sandbox Code Playgroud)
我知道userEntity不包含任何方法,如previous()和next(),它只是一个例子,如果存在任何类似的东西,可以帮助直接以面向对象的方式获得下一个和前一个实体!
我需要获取symfony 2.7实体内的表的最大ID.但我没有得到这个问题,而是得到了这个问题.
注意:未定义的属性:AppBundle\Entity\BlogPost :: $ container
这是我的BlogPost实体,
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\UploadedFile;
/**
* BlogPost
*
* @ORM\Table()
* @ORM\Entity
*/
class BlogPost {
const SERVER_PATH_TO_IMAGE_FOLDER = '/uploads';
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="title", type="string", length=255)
*/
private $title;
/**
* @var string
*
* @ORM\Column(name="body", type="text")
*/
private $body;
/**
* @var string
*
* @ORM\Column(name="filename", type="text")
*/
private …Run Code Online (Sandbox Code Playgroud)