[symfony-users] Re: EntityChoiceField Issue with QueryBuilder params

2011-02-23 Thread Nathan Mudie
You need to use the use option for the closure as the variable your
trying to use isn't in the correct scope.

See example 3 on this page: http://php.net/manual/en/functions.anonymous.php

Your code will look like this:

'query_builder' = function($repository) use ($state_id) {
 return $repository-createQueryBuilder('cities')-
where('cities.state_id = :state_id')-setParameter('state_id',
$state_id);
}


On Feb 23, 1:19 am, Roger Webb webb.ro...@gmail.com wrote:
 Another interesting point to add.  If I define(STATE_ID, $state_id)
 and pass that to the QueryBuilder setParameter method it works.

 On Feb 21, 3:12 pm, Roger Webb webb.ro...@gmail.com wrote:







  Greetings,

  Ran into an issue with the EntityChoiceField.  I am rendering a SELECT
  field with city names.  If I use a literal value (ie. 2) in the
  query_builder param of the EntityChoiceField everything works
  perfectly.  If I substitute that with a variable value I get an empty
  select.  Also, I have printed out the value of the state_id from the
  request and it prints the correct value.

  Any help would be appreciated.

  Roger

  Here is the code where I create the field.

  This is the code for the controller that is fetching the select field

  $params['city_select'] = 
  $this-forward('UserBundle:Ajax:getCitySelectByStateId', array(),

  array('state_id' = 2))-getContent();

  $params gets passed to the view

  This is the code from my AjaxController which should return these db
  driven fields on demand.

      public function getCitySelectByStateIdAction() {
          $em = $this-get('doctrine.orm.entity_manager');
          $request = $this-get('request');

          if(!$request-get('state_id'))
                  return new Response('ERROR');  //NOT GETTING AN ERROR
  HERE

          $state_id = (int)$request-get('state_id');

          $field = new EntityChoiceField($name, array(
                  'em' = $em,
                  'class' = 'ARN\EntityBundle\Entity\Cities',
                  'property' = 'city_name',
                  'query_builder' = function($repository) {
                       return 
  $repository-createQueryBuilder('cities')-where('cities.state_id = 
  :state_id')-setParameter('state_id',

  $state_id);
                                             }
          ));

          return $this-render('UserBundle:Ajax:form_field.html.twig',
  array('field' = $field));
      }

-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups symfony users group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/symfony-users?hl=en


[symfony-users] Re: EntityChoiceField Issue with QueryBuilder params

2011-02-23 Thread Roger Webb
This worked.  Thanks.

On Feb 22, 12:25 pm, Nathan Mudie nathan.mu...@gmail.com wrote:
 You need to use the use option for the closure as the variable your
 trying to use isn't in the correct scope.

 See example 3 on this page:http://php.net/manual/en/functions.anonymous.php

 Your code will look like this:

 'query_builder' = function($repository) use ($state_id) {
      return $repository-createQueryBuilder('cities')-

 where('cities.state_id = :state_id')-setParameter('state_id',
 $state_id);
 }

 On Feb 23, 1:19 am, Roger Webb webb.ro...@gmail.com wrote:

  Another interesting point to add.  If I define(STATE_ID, $state_id)
  and pass that to the QueryBuilder setParameter method it works.

  On Feb 21, 3:12 pm, Roger Webb webb.ro...@gmail.com wrote:

   Greetings,

   Ran into an issue with the EntityChoiceField.  I am rendering a SELECT
   field with city names.  If I use a literal value (ie. 2) in the
   query_builder param of the EntityChoiceField everything works
   perfectly.  If I substitute that with a variable value I get an empty
   select.  Also, I have printed out the value of the state_id from the
   request and it prints the correct value.

   Any help would be appreciated.

   Roger

   Here is the code where I create the field.

   This is the code for the controller that is fetching the select field

   $params['city_select'] = 
   $this-forward('UserBundle:Ajax:getCitySelectByStateId', array(),

   array('state_id' = 2))-getContent();

   $params gets passed to the view

   This is the code from my AjaxController which should return these db
   driven fields on demand.

       public function getCitySelectByStateIdAction() {
           $em = $this-get('doctrine.orm.entity_manager');
           $request = $this-get('request');

           if(!$request-get('state_id'))
                   return new Response('ERROR');  //NOT GETTING AN ERROR
   HERE

           $state_id = (int)$request-get('state_id');

           $field = new EntityChoiceField($name, array(
                   'em' = $em,
                   'class' = 'ARN\EntityBundle\Entity\Cities',
                   'property' = 'city_name',
                   'query_builder' = function($repository) {
                        return 
   $repository-createQueryBuilder('cities')-where('cities.state_id = 
   :state_id')-setParameter('state_id',

   $state_id);
                                              }
           ));

           return $this-render('UserBundle:Ajax:form_field.html.twig',
   array('field' = $field));
       }



-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups symfony users group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/symfony-users?hl=en


[symfony-users] Re: EntityChoiceField Issue with QueryBuilder params

2011-02-22 Thread Roger Webb
Another interesting point to add.  If I define(STATE_ID, $state_id)
and pass that to the QueryBuilder setParameter method it works.

On Feb 21, 3:12 pm, Roger Webb webb.ro...@gmail.com wrote:
 Greetings,

 Ran into an issue with the EntityChoiceField.  I am rendering a SELECT
 field with city names.  If I use a literal value (ie. 2) in the
 query_builder param of the EntityChoiceField everything works
 perfectly.  If I substitute that with a variable value I get an empty
 select.  Also, I have printed out the value of the state_id from the
 request and it prints the correct value.

 Any help would be appreciated.

 Roger

 Here is the code where I create the field.

 This is the code for the controller that is fetching the select field

 $params['city_select'] = 
 $this-forward('UserBundle:Ajax:getCitySelectByStateId', array(),

 array('state_id' = 2))-getContent();

 $params gets passed to the view

 This is the code from my AjaxController which should return these db
 driven fields on demand.

     public function getCitySelectByStateIdAction() {
         $em = $this-get('doctrine.orm.entity_manager');
         $request = $this-get('request');

         if(!$request-get('state_id'))
                 return new Response('ERROR');  //NOT GETTING AN ERROR
 HERE

         $state_id = (int)$request-get('state_id');

         $field = new EntityChoiceField($name, array(
                 'em' = $em,
                 'class' = 'ARN\EntityBundle\Entity\Cities',
                 'property' = 'city_name',
                 'query_builder' = function($repository) {
                      return 
 $repository-createQueryBuilder('cities')-where('cities.state_id = 
 :state_id')-setParameter('state_id',

 $state_id);
                                            }
         ));

         return $this-render('UserBundle:Ajax:form_field.html.twig',
 array('field' = $field));
     }

-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups symfony users group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/symfony-users?hl=en