ZF2学说2-输出接通单向



注释Onotoone单向后,我想输出连接的列,而不使用表单。

一个人实体有一列来存储国家实体的ID。

我可以做的:我可以使用带有下拉列表的表格将国家的ID存储到人民实体中,该表格绑定到该国实体。

问题:我无法进入值得正确的,加入表的价值国家。

人实体:

<?php 
namespace PeopleEntity;
use DoctrineORMMapping as ORM;
// ...
/**
* A people entity.
*
* @ORMEntity
* @ORMTable(name="icd_people")
* @property int $id
// ...
* @property string $ic_hq_country
*/
class People implements InputFilterAwareInterface
{
protected $inputFilter;
/**
* @ORMId
* @ORMColumn(type="integer");
*/
protected $id;
/**
* @ORMColumn(type="integer")
* @ORMOneToOne(targetEntity="Country")
* @ORMJoinColumn(name="ic_hq_country", referencedColumnName="id")
*/
protected $ic_hq_country;
// getter and setter
}

国家实体:

<?php 
namespace PeopleEntity;
use DoctrineORMMapping as ORM;
//...
/**
* A Country entity.
*
* @ORMEntity
* @ORMTable(name="pre_country")
* @property int $id
* @property string $country
*/
class Country implements InputFilterAwareInterface
{
protected $inputFilter;
 /**
 * @ORMId
 * @ORMColumn(type="integer");
 */
protected $id;
/**
* @ORMColumn(type="string")
*/
protected $country;
/**
 * Get id
 *
 * @return integer
 */
public function getId()
{
    return $this->id;
}
/**
 * Set country
 *
 * @param string $country
 * @return Country
 */
public function setCountry($country)
{
    $this->country = $country;
    return $this;
}
/**
 * Get country
 *
 * @return string
 */
public function getCountry()
{
    return $this->country;
}
/**
* Convert the object to an array.
*
* @return array
*/
public function getArrayCopy()
{
    return get_object_vars($this);
}
public function setInputFilter(InputFilterInterface $inputFilter)
{
    throw new Exception("Not used");
}
public function getInputFilter()
{
    throw new Exception("Not used");
}
}

控制器动作:

public function indexAction()
{
    $userid =  $this->zfcUserAuthentication()->getIdentity()->getId();
     return new ViewModel(array(
        'pea' => $this->getEntityManager()->find('PeopleEntityPeople', $userid),
));
}

赋予国家ID的视图,但没有名称:

<?php echo $this->escapeHtml($pea->ic_hq_country);?>

我实际上期望这样的事情,输出国家名称而不是ID:

<?php echo $this->escapeHtml($pea->country);?>

感谢您的阅读和任何帮助,这可能会使我走向正确的方向!

您不应在People实体的$ic_hq_country字段中使用@Column anotation

/**
* @ORMOneToOne(targetEntity="Country")
* @ORMJoinColumn(name="ic_hq_country", referencedColumnName="id")
*/
protected $ic_hq_country;

这样,希望ic_hq_country将是实体而不是ID的代理。

因此,您可以使用:

<?php echo $pea->ic_hq_country->getId();?>

以及

<?php echo $this->escapeHtml($pea->ic_hq_country->getCountry());?>

相关内容

  • 没有找到相关文章

最新更新