संपादित करें:सोनाटा: गंभीर त्रुटि: '100' पर पहुंच गया की अधिकतम समारोह नेस्टिंग स्तर .. जब embedding रूपों
echo `'xdebug.max_nesting_level = 250' >> /etc/php5/conf.d/xdebug.ini`
: एक ही मुद्दे को हल पर रुचि किसी को भी, कि चाल किया था के लिए मैंने एक दूसरे से जुड़े 3 इकाइयों के लिए 3 व्यवस्थापक बनाए हैं, जहां एक व्यवस्थापक बी व्यवस्थापक को एम्बेड कर रहा है और बी व्यवस्थापक सी व्यवस्थापक को एम्बेड करता है। बी इकाई में ए और बी इकाई के साथ बहुत से संबंध हैं।
एक इकाई निम्न कोड के साथ बी इकाई एम्बेड करता है:
$formMapper->add('b', 'sonata_type_collection', array(
'by_reference' => false
), array(
'edit' => 'inline',
'inline' => 'table',
'sortable' => 'position'
));
बी इकाई एम्बेड करता है के बाद एक साथ सी इकाई:
$formMapper->add('c', 'sonata_type_model', array(
'required' => true,
'label' => ucfirst($this->trans('c', array(), $this->translationDomain, $this->langCode))
), array('edit' => 'list'));
नोट: 'edit' => 'standard'
के पक्ष में 'edit' => 'list'
बदलते निम्न त्रुटि से बचा जाता है ।
पर 0 एडमिनिस्ट्रेशन पर बी 0 एडमिनिस्ट्रेशन पर sonata_type_model
फॉर्म प्रकार एनी संपादित करते समय निम्न त्रुटि देता है।
Sonata: Fatal error: Maximum function nesting level of '100' reached, aborting! in myProject/vendor/doctrine-common/lib/Doctrine/Common/Lexer.php on line 756
मुश्किल या उत्सुक बात यह है कि कोई फर्क नहीं पड़ता अगर संपादन सूची या मानक है अगर मैं बी व्यवस्थापक करने के लिए जाने के लिए इसे संपादित करने के लिए है: बजाय array('edit' => 'standard')
तो प्रयोग किया जाता है कोई त्रुटि उत्पादन होता है। समस्या केवल तभी दिखाई देती है जब मैं संपादन सूची विकल्प सेट के साथ ए में एम्बेडेड बी संपादित करता हूं। और यह मेरे साथ कुछ अन्य संस्थाओं में हो रहा है जहां मैंने एक ही व्यवहार लागू किया।
यहाँ ए, बी और सी इकाई हैं और कैसे वे एक दूसरे से जोड़ने:
एक इकाई:
class A
{
/**
* @ORM\Id
* @ORM\Column(type="integer", length=4)
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/** @ORM\OneToMany(targetEntity="B", mappedBy="a", cascade={"persist"}, orphanRemoval=true) */
protected $b;
}
बी इकाई:
class B
{
/**
* @ORM\Id
* @ORM\Column(type="integer", length=4)
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id
/**
* @ORM\ManyToOne(targetEntity="C", inversedBy="b", cascade={"persist"})
* @ORM\JoinColumn(name="c_id", nullable=false, referencedColumnName="id", onDelete="CASCADE")
*/
private $c;
/**
* @ORM\ManyToOne(targetEntity="A", inversedBy="b", cascade={"persist"})
* @ORM\JoinColumn(name="a_id", nullable=false, referencedColumnName="id", onDelete="CASCADE")
*/
private $a;
}
सी इकाई:
Class C
{
/**
* @ORM\Id
* @ORM\Column(type="integer", length=4)
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/** @ORM\OneToMany(targetEntity="B", mappedBy="c", cascade={"persist"}) */
private $b;
}
लू लेने में सक्षम होने के लिए इस पर आप एक समान व्यवहार की जांच करने के लिए सोनाटा डेमो प्रोजेक्ट का उपयोग कर सकते हैं।
जैसा कि आप देख सकते हैं कि यह वही उपयोग केस है जो सोनाटा प्रोजेक्ट डेमो पर पाया जा सकता है जहां गैलेक्सी गैलेहास मैडियास के खिलाफ जुड़ा हुआ है जो मीडिया के खिलाफ लिंक करता है: http://demo.sonata-project.org/admin/sonata/media/gallery/255/edit?context=default जैसा कि आप देख सकते हैं, गैलरीहासमीडिया में गैलरी के साथ कई सारे संबंध हैं और मीडिया के साथ एक और जब आप गैलरी को संपादित करते हैं तो sonata_type_model
edit' => 'inline','inline' => 'table',
के साथ देख सकता है, इसलिए गैलरी हासमीडिया गैलरी फॉर्म के अंदर एम्बेडेड है ताकि नए मीडिया को जोड़ने में सक्षम हो सकें जो मौजूदा गैलरी से जुड़े हुए हैं और GalleryHasMedia
के अंदर संग्रहीत हैं।
क्या किसी को भी उजागर की स्थिति की स्थिति का सामना करना पड़ा है? उम्मीद है कि कोई सही दिशा को इंगित कर सकता है या क्या हो रहा है पर एक सुराग प्राप्त करने में मदद कर सकता है।
पीडी: मेरे लिए ऐसा लगता है जैसे बी और सी इकाइयां अंतहीन पाश में एक-दूसरे को जोड़/एम्बेड कर रही हैं। लेकिन जैसा कि कहा गया है, 3 व्यवस्थापक अलग से काम कर रहे हैं (जबकि ए बी को एम्बेड नहीं करता है)।
यही किया था चाल: echo 'xdebug.max_nesting_level = 250' >> /etc/php5/conf.d/xdebug.ini – user846226
धन्यवाद कि एक दिन के लिए मेरे पागल चला रहा है, सिम्फनी के साथ phpunits – dmi3y
चलाने के दौरान कृपया अपने समाधान के साथ अपने प्रश्न को संपादित करने के बजाय कृपया एक वास्तविक उत्तर प्रदान करें ताकि समुदाय इस प्रश्न को जानता हो एस्टोन हल हो गया है। – lifo