मुझे समझ में नहीं आता कि कुछ एंटीटी ऑब्जेक्ट्स के साथ मैं आईडी सेट कर सकता हूं और अन्य वस्तुओं के लिए मुझे एक त्रुटि मिलती है और मुझे कहता है कि आईडी शून्य नहीं हो सकती है और मुझे इसके बजाय ऑब्जेक्ट पास करना होगा।सिद्धांत 2, पास आईडी या ऑब्जेक्ट?
उदा .:
$log = new Log();
$log->setTypeId(1);
$log->setUserId(1);
$entityManager->persist($log);
$entityManager->flush();
ऊपर मैं त्रुटि मिलेगा जिसमें बताया गया अगर मैं कोड का प्रयास करें: वफ़ादारी बाधा उल्लंघन: 1048 स्तंभ 'user_id' अशक्त नहीं हो सकता। और मैं पहले प्रकार वस्तु और डी उपयोगकर्ता वस्तु बनाने के लिए है और उन्हें पारित:
$log->setType($TypeObject)
$log->setUser($UserObject)
लेकिन दूसरी इकाई वस्तुओं के लिए मैं मूल्य सीधे बताए कोई समस्या नहीं है, यही कारण है कि है?
यह मेरा इकाई लॉग है:
<?php
/**
* @Entity
* @Table(name="log")
* @HasLifecycleCallbacks
*/
class Log
{
/**
* @var type
* @Id
* @Column(type="integer")
* @GeneratedValue
*/
protected $id;
/**
*
* @var type
* @Column(type="integer")
*/
protected $user_id;
/**
*
* @var type
* @Column(type="integer")
*/
protected $type_id;
/**
*
* @var type
* @Column(type="datetime")
*/
protected $created;
/**
*
* @var type
* @ManyToOne(targetEntity="User", inversedBy="logs")
*/
protected $user;
/**
*
* @ManyToOne(targetEntity="Type", inversedBy="logs")
*/
protected $type;
public function getId()
{
return $this->id;
}
public function getUserId()
{
return $this->user_id;
}
public function getTypeId()
{
return $this->type_id;
}
public function getCreated()
{
return $this->created;
}
public function setUserId($userId)
{
$this->user_id = $userId;
}
public function setTypeId($typeId)
{
$this->type_id = $typeId;
}
public function setCreated($created)
{
$this->created = $created;
}
public function setUser($user)
{
$this->user = $user;
}
public function setType($type)
{
$this->type = $type;
}
/**
* @PrePersist
*/
public function prePersist()
{
$this->setCreated(new DateTime());
}
}
?>
खुशी हुई जिसने मदद की। यह मुझे 1 के निशान में भेज दिया। वू हू। –