मैं सिम्फनी 2 ढांचे में निर्मित सिद्धांत 2 का उपयोग कर डेटाबेस विरासत के साथ निम्न समस्या का समाधान खोज रहा हूं। यह मुझे क्या करना चाहते है ...सिम्फनी 2 + सिद्धांत 2 + विरासत
मैं सार वर्ग Hodiny रूप में एक ही इंटरफ़ेस के साथ दो तालिकाओं (UredniHodiny, KonzultacniHodiny) बनाना चाहते हैं। यह जब मैं चलाने php app/console doctrine:generate:entities CvutPWTImportBundle
Symfony दोनों बच्चे कक्षाओं के लिए निजी चर के रूप में वर्ग Hodiny से सभी चर (अधिक सटीक कॉलम) उत्पन्न करता है मैं इसे कैसे
<?php
// src/CvutPWT/ImportBundle/Entity/Hodiny.php
namespace CvutPWT\ImportBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\MappedSuperclass
*/
abstract class Hodiny
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="Osoba")
*/
protected $osoba;
/**
* @ORM\ManyToOne(targetEntity="Mistnost")
*/
protected $mistnost;
/**
* @ORM\Column(type="datetime")
*/
protected $zacatek;
/**
* @ORM\Column(type="datetime")
*/
protected $konec;
}
<?php
// src/CvutPWT/ImportBundle/Entity/KonzultacniHodiny.php
namespace CvutPWT\ImportBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="konzultacnihodiny")
*/
class KonzultacniHodiny extends Hodiny
{
}
<?php
// src/CvutPWT/ImportBundle/Entity/UredniHodiny.php
namespace CvutPWT\ImportBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="urednihodiny")
*/
class UredniHodiny extends Hodiny
{
}
करने के लिए अब कोशिश कर रहा हूँ है। अब जब मैं app/console doctrine:schema:update --force
के साथ उन तालिकाओं को बनाने की कोशिश कर रहा हूं तो मुझे $id must be protected or weaker
त्रुटियां मिल रही हैं। जब मैं मैन्युअल रूप से इस सुरक्षा को बदलता हूं तो मैं टेबल बनाने में सक्षम हूं लेकिन केवल एक कॉलम (आईडी) है। लेकिन यह वह नहीं है जिसे मैं उम्मीद कर रहा था। क्या कोई मुझे कोई सलाह दे सकता है कि मैं क्या गलत कर रहा हूं?
अरे, यह मेरे लिए अपेक्षित काम करता है। मुझे 'Konzultacnihodiny' नामक एक टेबल मिलती है और' urednihodiny 'नामक एक तालिका होती है जिसमें दोनों में 5 फ़ील्ड होते हैं। नोट मुझे दो अन्य इकाइयों को जोड़ने की भी आवश्यकता है क्योंकि वे वर्तमान में होडीनी बेस क्लास में एफके हैं। आपको यह भी पुष्टि करनी चाहिए कि [विरासत प्रकार] (http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/inheritance-mapping.html) आप उपयोग करना चाहते हैं क्योंकि एक से अधिक है। – Shane