Php 实体关系仅返回带有Symfony的ID
我正在与CRUD和entities一起进行我的第一个Symfony项目 我已经生成了所有的实体(需要所有的getter和setter),但有些地方出了问题。 实际上,我的实体PjTickets与我的另一个实体PjCompany相链接 PJTRIPSS还应该返回PjCompany的数据(在外键上)。 实际上,pjtripsre返回PjCompany的所有字段,但不返回null(id字段除外) 这是我的PjTrips(Entity/PjTrips.php): 以下是PjTrips find()请求返回的内容:Php 实体关系仅返回带有Symfony的ID,php,symfony,crud,Php,Symfony,Crud,我正在与CRUD和entities一起进行我的第一个Symfony项目 我已经生成了所有的实体(需要所有的getter和setter),但有些地方出了问题。 实际上,我的实体PjTickets与我的另一个实体PjCompany相链接 PJTRIPSS还应该返回PjCompany的数据(在外键上)。 实际上,pjtripsre返回PjCompany的所有字段,但不返回null(id字段除外) 这是我的PjTrips(Entity/PjTrips.php): 以下是PjTrips find()请求返
0 => PjTrips {#726 ▼
-id: 1
-date: DateTime @1574071200 {#728 ▶}
-quantity: 165
-price: 89.0
-arrival: PjAirports {#710 ▼
+__isInitialized__: false
-id: 5
-label: null
-iata: null
…2
}
-company: PjCompany {#662 ▶}
-departure: PjAirports {#653 ▶}
}
知道为什么我无法获取pjairport.label和pjairport.iata的任何数据吗?这是延迟加载。在这种情况下,当您获得
PjTrips
实体时,您的一些关系不会立即从数据库加载。条令将设置只包含ID的PjCompany代理对象
,而不是包含所有数据的PjCompany实体
。仅当您调用时,例如,$trips->getArrival()->getLabel()代码>条令将从数据库加载PjCompany实体。
你可以阅读更多关于这个和
namespace VoyagesBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* PjCompany
*
* @ORM\Table(name="pj_company")
* @ORM\Entity
*/
class PjCompany
{
/**
* @var integer
*
* @ORM\Column(name="ID", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="label", type="string", length=250, nullable=false)
*/
private $label;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set label
*
* @param string $label
*
* @return PjCompany
*/
public function setLabel($label)
{
$this->label = $label;
return $this;
}
/**
* Get label
*
* @return string
*/
public function getLabel()
{
return $this->label;
}
}
0 => PjTrips {#726 ▼
-id: 1
-date: DateTime @1574071200 {#728 ▶}
-quantity: 165
-price: 89.0
-arrival: PjAirports {#710 ▼
+__isInitialized__: false
-id: 5
-label: null
-iata: null
…2
}
-company: PjCompany {#662 ▶}
-departure: PjAirports {#653 ▶}
}