Php Symfony2:如何从数组中获取值并将其打印到twing文件中
我是新来的。我目前正在使用symfony2.4 我卡住的地方- 我有一个场景。其中我必须在twing文件中显示简单的列表。数据来自数据库。此数据来自两个连接的表 第一个表格是团队 身份证 名字 绰号 国家识别号 第二个表格是国家 身份证 名字 我想像这样打印数据Php Symfony2:如何从数组中获取值并将其打印到twing文件中,php,symfony,Php,Symfony,我是新来的。我目前正在使用symfony2.4 我卡住的地方- 我有一个场景。其中我必须在twing文件中显示简单的列表。数据来自数据库。此数据来自两个连接的表 第一个表格是团队 身份证 名字 绰号 国家识别号 第二个表格是国家 身份证 名字 我想像这样打印数据 Name | Nickname | Country(name) Mumbai Indians| MI | India New Royals | NR | India 因此,我在twin
Name | Nickname | Country(name)
Mumbai Indians| MI | India
New Royals | NR | India
因此,我在twing文件中所做的是:
<table border=1>
<tr>
<th>Name</th>
<th>Nickname</th>
<th>Country</th>
</tr>
{% for team in teams %}
<tr>
<td>{{ team.name }}</td>
<td>{{ team.nickname }}</td>
<td>{{ team.country }}</td> <<<<<<<<<<<
</tr>
{% endfor %}
编辑
asrequested Teams.php(实体)
编辑Countries.php(实体)
命名空间管理\SporteventsBundle\Entity
使用条令\ORM\Mapping作为ORM
/**
*国家
*
*@ORM\Table(name=“countries”,uniqueConstraints={@ORM\UniqueConstraint(name=“uq\u countries\u name”,columns={“name”})
*@ORM\Entity
/
阶级国家
{
/*
*@var整数
*
*@ORM\Column(name=“country\u id”,type=“integer”)
*@ORM\Id
*@ORM\GeneratedValue(strategy=“SEQUENCE”)
*@ORM\SequenceGenerator(sequenceName=“countries\u country\u id\u seq”,allocationSize=1,initialValue=1)
*/
私人$countryId
/**
* @var string
*
* @ORM\Column(name="name", type="string", nullable=false)
*/
private $name;
/**
* Get countryId
*
* @return integer
*/
public function getCountryId()
{
return $this->countryId;
}
/**
* Set name
*
* @param string $name
* @return Countries
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
public function __toString()
{
return $this->name;
}
}假设您已正确设置了关系,您需要执行
{{{team.country.name}
更新以反映实体代码 Yo在join列注释处的teams实体中有错误。Referencedcolumn通常是id(您所在国家的主键是什么)。然后试着像这样进入这个国家
Name | Nickname | Country(name)
Mumbai Indians| MI | India
New Royals | NR | India
你需要在twig中执行{{team.country.name}},假设你已经正确地建立了你的关系这部分:
/**
* @var \Admin\SporteventsBundle\Entity\Countries
*
* @ORM\ManyToOne(targetEntity="Admin\SporteventsBundle\Entity\Countries")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="country_id", referencedColumnName="country_id")
* })
*/
private $country;
需要更改为:
/**
* @var \Admin\SporteventsBundle\Entity\Countries
*
* @ORM\ManyToOne(targetEntity="Admin\SporteventsBundle\Entity\Countries")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="country_id", referencedColumnName="id")
* })
*/
private $country;
asreferencedColumnName
应该是id
,而不是country\u id
通过执行上述操作,您将正确创建关系,然后在细枝文件中,您可以使用:
{{team.country.name}
希望获得以下帮助:)在团队实体的$country字段中,尝试使用以下设置关系:
/**
* @var \Admin\SporteventsBundle\Entity\Countries
*
* @ORM\ManyToOne(targetEntity="Admin\SporteventsBundle\Entity\Countries")
* @ORM\JoinColumn(name="country_id", referencedColumnName="country_id")
*/
private $country;
然后,您可以通过在twig中键入以下内容来访问您所在国家的名称:
{{ team.country.name }}
也许是一个数组,你必须扫描它?
{team.country%%中的国家/地区的%
{{country.name}
{%endfor%}
能否显示“团队”的实体代码?您是否将国家/地区存储为字符串或与其他实体相关?您的国家/地区实体类中是否有uu-toString方法?@sglessard:是__toString方法是their@BobFlemming:实体代码粘贴显示未引发错误。但是没有显示任何东西我认为你在你的控制器中是如此的接近如果你为每个($teams$team){print\r($team->getCountry()->getName())}做了会发生什么我认为没有数据是为name而来的。控制器中是否有额外的代码来获取此名称?请检查我的控制器代码。团队在DB中是否有与其关联的县?联接是否在您的架构中就位?不,它不起作用。我的插件工作正常,因此设置正确
{{ team.country.name }}