[SOLVED] sonataAdmin OneToOne relation Problem

Discuss Symfony 2 bundles here

Moderators: dcobalt, tiagojsag

[SOLVED] sonataAdmin OneToOne relation Problem

Postby bertinl0609 » Thu Apr 05, 2012 8:53 pm

Hi

I got a master class TextDescription divided in 2 classes Comment and Editorial.
The TextDescription class is linked in a OneToOne relation with a FullText Class in a uni-direccional way.

When i try, with the sonataadmin bundle to edit a comment with the inline edit of my textfull class, i received an error: undefined index: description

le code de ma class textDescription:
Code: Select all
<?php

namespace sys4win\segundaBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Gedmo\Timestampable\Timestampable;

/**
 *  @ORM\Table(name="textdescriptions")
 *  @ORM\Entity(repositoryClass="sys4win\segundaBundle\Entity\TextDescriptionRepository")
 *  @ORM\InheritanceType("SINGLE_TABLE")
 *  @ORM\DiscriminatorColumn(name="texttype", type="string")
 *  @ORM\DiscriminatorMap({"comment"="Comment","editorial"="Editorial"})

 */
class TextDescription
{
       
    /**
     * @var integer $id
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    protected $id;

    /**
     * @var string $title
     * @ORM\Column(name="title", type="string", length="100")

     */
    protected $title;

    /**
     * @ORM\OneToOne (targetEntity="TextFull")
     *  @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="fulltext_id", referencedColumnName="id")
     * })
     */
    protected $textfull;
...


Le code de ma classe TextFull
Code: Select all
<?php

namespace sys4win\segundaBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * sys4win\segundaBundle\Entity\TextFull
 *
 * @ORM\Entity
 * @ORM\Table(name="text_fulltext")
 */
class TextFull
{
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var text $titulo
     *
     * @ORM\Column(name="description", type="text", nullable=false)
     */
    private $description;

    /**
     * @var boolean $isvalid
     *
     * @ORM\Column(name="isvalid", type="boolean", nullable=true)
     */
    private $isvalid;
...


le code de ma classe comment
Code: Select all
<?php

namespace sys4win\segundaBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Gedmo\Timestampable\Timestampable;
use sys4win\segundaBundle\Entity\PerformanceRepository as PerformanceRepo;



/**
*  @ORM\Entity(repositoryClass="sys4win\segundaBundle\Entity\CommentRepository")
 *
 */
class Comment extends TextDescription{
   
    /**
     * @ORM\ManyToOne(targetEntity="Performance", inversedBy="comments")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="performanceid", referencedColumnName="id")
     * })
     */
    private $performance;
   
    /**
     * @var string $author
     * @ORM\Column(name="author", type="string", length="100")
     */
    private $author;
   
   
     /**
     * @ORM\ManyToOne(targetEntity="\sys4win\UserBundle\Entity\User", inversedBy="comments")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="authoruser_id", referencedColumnName="id")
     * })
     */
    private $authoruser;
...


la fonction de ma classe CommentAdmin
Code: Select all
protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
            ->with("General")
            ->add('title')
       ->add('performance', 'sonata_type_model', array(), array())
       ->add('isvalid',  'sonata_type_boolean')
            ->add('enhome',  'sonata_type_boolean')
            ->add('authoruser', 'sonata_type_model', array(), array())
            ->end()
            ->with("Texto")
                ->add('TextFull', 'sonata_type_model', array(), array('edit' => 'inline'))               
            ->end()
        ;
    }

The services:
Code: Select all
   sys4win.segunda.admin.comment:
      class: sys4win\segundaBundle\Admin\CommentAdmin
      tags:
        - { name: sonata.admin, manager_type: orm, group: admin, label: EnCartel}
      arguments: [null, sys4win\segundaBundle\Entity\Comment, SonataAdminBundle:CRUD]
   
   sys4win.segunda.admin.textfull:
      class: sys4win\segundaBundle\Admin\TextFullAdmin
      tags:
        - { name: sonata.admin, manager_type: orm, group: admin, label: texto }
      arguments: [null, sys4win\segundaBundle\Entity\TextFull, SonataAdminBundle:CRUD]


The message i receive is
An exception has been thrown during the rendering of a template ("Notice: Undefined index: description in D:\wamp\www\dev2\segunda\vendor\symfony\src\Symfony\Component\Form\FormView.php line 212") in SonataDoctrineORMAdminBundle:CRUD:edit_orm_one_to_one.html.twig at line 16.


My log (but i don(t know if it would be possible to get more info...)
2012-04-05 18:43:47] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelRequest". [] []
[2012-04-05 18:43:47] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\RouterListener::onEarlyKernelRequest". [] []
[2012-04-05 18:43:47] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\SessionListener::onKernelRequest". [] []
[2012-04-05 18:43:47] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\Security\Http\Firewall::onKernelRequest". [] []
[2012-04-05 18:43:47] security.DEBUG: Read SecurityContext from the session [] []
[2012-04-05 18:43:47] security.DEBUG: Reloading user from user provider. [] []
[2012-04-05 18:43:48] doctrine.DEBUG: SET NAMES UTF8 ([]) [] []
[2012-04-05 18:43:48] doctrine.DEBUG: SELECT t0.username AS username1, t0.username_canonical AS username_canonical2, t0.email AS email3, t0.email_canonical AS email_canonical4, t0.enabled AS enabled5, t0.salt AS salt6, t0.password AS password7, t0.last_login AS last_login8, t0.locked AS locked9, t0.expired AS expired10, t0.expires_at AS expires_at11, t0.confirmation_token AS confirmation_token12, t0.password_requested_at AS password_requested_at13, t0.roles AS roles14, t0.credentials_expired AS credentials_expired15, t0.credentials_expire_at AS credentials_expire_at16, t0.id AS id17, t0.firstname AS firstname18, t0.lastname AS lastname19, t0.facebookId AS facebookId20 FROM fos_user t0 WHERE t0.username_canonical = ? (["bertinl"]) [] []
[2012-04-05 18:43:49] security.DEBUG: Username "bertinl" was reloaded from user provider. [] []
[2012-04-05 18:43:49] event.DEBUG: Notified event "kernel.request" to listener "sys4win\segundaBundle\Listener\DoctrineExtensionListener::onKernelRequest". [] []
[2012-04-05 18:43:49] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\RouterListener::onKernelRequest". [] []
[2012-04-05 18:43:49] request.INFO: Matched route "admin_sys4win_segunda_editorial_create" (parameters: "_controller": "Sonata\AdminBundle\Controller\CRUDController::createAction", "_sonata_admin": "sys4win.segunda.admin.editorial", "_sonata_name": "admin_sys4win_segunda_editorial_create", "_route": "admin_sys4win_segunda_editorial_create") [] []
[2012-04-05 18:43:49] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Bundle\AsseticBundle\EventListener\RequestListener::onKernelRequest". [] []
[2012-04-05 18:43:49] event.DEBUG: Notified event "kernel.request" to listener "SimpleThings\EntityAudit\Request\CurrentUserListener::handle". [] []
[2012-04-05 18:43:49] event.DEBUG: Notified event "kernel.request" to listener "sys4win\segundaBundle\Listener\DoctrineExtensionListener::onLateKernelRequest". [] []
[2012-04-05 18:43:49] event.DEBUG: Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RequestDataCollector::onKernelController". [] []
[2012-04-05 18:43:49] event.DEBUG: Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\ControllerListener::onKernelController". [] []
[2012-04-05 18:43:49] event.DEBUG: Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\ParamConverterListener::onKernelController". [] []
[2012-04-05 18:43:49] event.DEBUG: Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener::onKernelController". [] []
[2012-04-05 18:43:49] event.DEBUG: Notified event "kernel.controller" to listener "Acme\DemoBundle\ControllerListener::onKernelController". [] []
[2012-04-05 18:43:49] event.DEBUG: Notified event "kernel.controller" to listener "JMS\SecurityExtraBundle\Controller\ControllerListener::onCoreController". [] []
[2012-04-05 18:43:50] doctrine.DEBUG: SELECT t0.username AS username1, t0.username_canonical AS username_canonical2, t0.email AS email3, t0.email_canonical AS email_canonical4, t0.enabled AS enabled5, t0.salt AS salt6, t0.password AS password7, t0.last_login AS last_login8, t0.locked AS locked9, t0.expired AS expired10, t0.expires_at AS expires_at11, t0.confirmation_token AS confirmation_token12, t0.password_requested_at AS password_requested_at13, t0.roles AS roles14, t0.credentials_expired AS credentials_expired15, t0.credentials_expire_at AS credentials_expire_at16, t0.id AS id17, t0.firstname AS firstname18, t0.lastname AS lastname19, t0.facebookId AS facebookId20 FROM fos_user t0 ([]) [] []
[2012-04-05 18:43:50] doctrine.DEBUG: SELECT t0.id AS id1, t0.description AS description2, t0.isvalid AS isvalid3 FROM text_fulltext t0 ([]) [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.exception" to listener "Symfony\Component\Security\Http\Firewall\ExceptionListener::onKernelException". [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.exception" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelException". [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.exception" to listener "Symfony\Component\HttpKernel\EventListener\ExceptionListener::onKernelException". [] []
[2012-04-05 18:44:10] request.CRITICAL: Twig_Error_Runtime: An exception has been thrown during the rendering of a template ("Notice: Undefined index: description in D:\wamp\www\dev2\segunda\vendor\symfony\src\Symfony\Component\Form\FormView.php line 212") in "SonataDoctrineORMAdminBundle:CRUD:edit_orm_one_to_one.html.twig" at line 16. (uncaught exception) at D:\wamp\www\dev2\segunda\vendor\twig\lib\Twig\Template.php line 273 [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelRequest". [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\RouterListener::onEarlyKernelRequest". [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\SessionListener::onKernelRequest". [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\Security\Http\Firewall::onKernelRequest". [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.request" to listener "sys4win\segundaBundle\Listener\DoctrineExtensionListener::onKernelRequest". [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\RouterListener::onKernelRequest". [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Bundle\AsseticBundle\EventListener\RequestListener::onKernelRequest". [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.request" to listener "SimpleThings\EntityAudit\Request\CurrentUserListener::handle". [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.request" to listener "sys4win\segundaBundle\Listener\DoctrineExtensionListener::onLateKernelRequest". [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RequestDataCollector::onKernelController". [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\ControllerListener::onKernelController". [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\ParamConverterListener::onKernelController". [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener::onKernelController". [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.controller" to listener "Acme\DemoBundle\ControllerListener::onKernelController". [] []
[2012-04-05 18:44:10] event.DEBUG: Notified event "kernel.controller" to listener "JMS\SecurityExtraBundle\Controller\ControllerListener::onCoreController". [] []
[2012-04-05 18:44:12] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\Security\Http\Firewall\ContextListener::onKernelResponse". [] []
[2012-04-05 18:44:12] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse". [] []
[2012-04-05 18:44:12] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bundle\SecurityBundle\EventListener\ResponseListener::onKernelResponse". [] []
[2012-04-05 18:44:12] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bridge\Monolog\Handler\FirePHPHandler::onKernelResponse". [] []
[2012-04-05 18:44:12] event.DEBUG: Notified event "kernel.response" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\CacheListener::onKernelResponse". [] []
[2012-04-05 18:44:12] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelResponse". [] []
[2012-04-05 18:44:13] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener::onKernelResponse". [] []
[2012-04-05 18:44:13] event.DEBUG: Listener "Symfony\Component\HttpKernel\EventListener\ExceptionListener::onKernelException" stopped propagation of the event "kernel.exception". [] []
[2012-04-05 18:44:13] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\Security\Http\Firewall\ContextListener::onKernelResponse". [] []
[2012-04-05 18:44:13] security.DEBUG: Write SecurityContext in the session [] []
[2012-04-05 18:44:13] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse". [] []
[2012-04-05 18:44:13] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bundle\SecurityBundle\EventListener\ResponseListener::onKernelResponse". [] []
[2012-04-05 18:44:13] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bridge\Monolog\Handler\FirePHPHandler::onKernelResponse". [] []
[2012-04-05 18:44:13] event.DEBUG: Notified event "kernel.response" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\CacheListener::onKernelResponse". [] []
[2012-04-05 18:44:13] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelResponse". [] []
[2012-04-05 18:44:14] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener::onKernelResponse". [] []


Would it be because it is unidireccional ? I am stuck on it for 3 days now and don't have any clue
Last edited by bertinl0609 on Tue Apr 10, 2012 5:31 am, edited 1 time in total.
bertinl0609
Junior Member
 
Posts: 10
Joined: Sun Jun 05, 2011 11:11 pm
Location: Buenos Aires

Re: sonataAdmin OneToOne relation Problem

Postby bertinl0609 » Tue Apr 10, 2012 5:31 am

I changed a bit of stuff and it know works...


The commentAdmin.php

Code: Select all
protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
            ->with("General")
            ->add('title')
       ->add('performance', 'sonata_type_model', array(), array())
       ->add('isvalid',  'sonata_type_boolean')
            ->add('enhome',  'sonata_type_boolean')
            ->add('authoruser', 'sonata_type_model', array(), array())
            ->end()
            ->with("Texto")
                ->add('TextFull',[b] 'is_textdetails_form'[/b])               
            ->end()
        ;
    }

and i created a service
Code: Select all
 is_textdetails_form:
      class: sys4win\segundaBundle\Form\TextFullType
      tags:
         -  { name: form.type }
bertinl0609
Junior Member
 
Posts: 10
Joined: Sun Jun 05, 2011 11:11 pm
Location: Buenos Aires


Return to Bundles discussion

Who is online

Users browsing this forum: No registered users and 1 guest