Problem solved!

Thanks again.



Matthew Weier O'Phinney-3 wrote:
> 
> -- j5 <[EMAIL PROTECTED]> wrote
> (on Wednesday, 10 December 2008, 06:10 PM -0800):
>> 
>> Sorry Matthew,
>> 
>> That was just a typo entering the code for my reply to you. The warning
>> still persists..
>> 
>> I appreciate your time.
> 
> I see the issue. Unset the $config['model'] key after you set the
> protected member -- otherwise, when setConfig() runs, it will set it as
> the public member 'model'.
> 
> 
>> Matthew Weier O'Phinney-3 wrote:
>> > 
>> > -- j5 <[EMAIL PROTECTED]> wrote
>> > (on Wednesday, 10 December 2008, 05:50 PM -0800):
>> >> 
>> >> Model Definition
>> >> <?
>> >> require_once dirname(__FILE__) . '/Model.php';
>> >> 
>> >> Class My_User extends My_Model
>> >> {
>> >> 
>> >> 
>> >> ...
>> >> 
>> >> } // end class
>> >> 
>> >> Form Definition
>> >> 
>> >> class My_Form_StandardLogin extends Zend_Form
>> >> {
>> >>   protected $_userModel = null;
>> >> 
>> >>   public function __construct($config=array())
>> >>   {
>> >>           if (is_array($config) && array_key_exists('model', $config)) {
>> >>                   $this->_model = $config['model'];
>> > 
>> > Here's the problem -- you define a protected $_userModel member, but
>> > then you're setting a non-existent $_model member -- which will have
>> > public visibility. Change the above to $this->_userModel.
>> > 
>> >>           }               
>> >>           parent::__construct($config);
>> >>   }
>> >> 
>> >>     public function init()
>> >>     {
>> >>           $this->addElementPrefixPath('My_Validate', APPLICATION_PATH .
>> >> '/models/Validate/', 'validate');
>> >>   
>> >>         $email = $this->addElement('text', 'email', array(
>> >>             'filters'    => array('StringTrim'),
>> >>             'validators' => array(
>> >>                 array('EmailAddress', true),
>> >>                 array('EmailExists', true, array($this->_userModel)),
>> >>             ),
>> >>             'required'   => true,
>> >>             'label'      => 'Email address:',
>> >>             'size'                 => 50,
>> >>             'maxlength'    => 75,
>> >>         ));
>> >> 
>> >> ...
>> >> } // end class
>> >> 
>> >> Then in the controller
>> >> 
>> >> $form    = $this->_helper->getForm(
>> >>             'StandardLogin',
>> >>             array(
>> >>                 'method' => 'post',
>> >>                 'action' => '/login',
>> >>                 'model' => $this->_userModel
>> >>             )
>> >>         );
>> >> 
>> >> 
>> >> 
>> >> And then in the view
>> >> 
>> >> <?= $this->loginForm ?>
>> >> 
>> >> 
>> >> I am using the latest ZF 1.7.1
>> >> 
>> >> 
>> >> 
>> >> Matthew Weier O'Phinney-3 wrote:
>> >> > 
>> >> > -- j5 <> wrote
>> >> > (on Wednesday, 10 December 2008, 05:22 PM -0800):
>> >> >> hmm, I changed the member to protected but this still seems to
>> trigger
>> >> >> the
>> >> >> warning error.
>> >> > 
>> >> > Code? I've done this before without issues, so I'll need some code
>> that
>> >> > reproduces it to diagnose.
>> >> > 
>> >> > 
>> >> >> Matthew Weier O'Phinney-3 wrote:
>> >> >> > 
>> >> >> > -- j5 <> wrote
>> >> >> > (on Wednesday, 10 December 2008, 02:42 PM -0800):
>> >> >> >> For my login form, I pass the form my user model (to be used by
>> >> >> >> validators)
>> >> >> >> and in the forms init() I add the model to a private variable.
>> >> >> >> 
>> >> >> >> I notice when I try display the form I get the following error.
>> >> >> >> Warning: htmlspecialchars() expects parameter 1 to be string,
>> >> object
>> >> >> >> given
>> >> >> >> in /home/blah/library/Zend/View/Abstract.php
>> >> >> >> 
>> >> >> >> I tracked this problem back to my user model not having a
>> >> __toString()
>> >> >> >> function. If I add a __toString() function that returns ''
>> within
>> >> my
>> >> >> user
>> >> >> >> model this error goes away.
>> >> >> > 
>> >> >> > Make the property storing the model protected. Public members are
>> >> >> passed
>> >> >> > as attributes to the view helper -- which is why you are getting
>> >> this
>> >> >> > message.
>> >> >> > 
>> >> >> >> Does anyone have any ideas how to avoid this problem without
>> having
>> >> to
>> >> >> >> create the __toString() soley for this purpose?
>> >> > 
>> >> > -- 
>> >> > Matthew Weier O'Phinney
>> >> > Software Architect       | [EMAIL PROTECTED]
>> >> > Zend Framework           | http://framework.zend.com/
>> >> > 
>> >> > 
>> >> 
>> >> -- 
>> >> View this message in context:
>> >>
>> http://www.nabble.com/Attaching-a-model-within-a-Zend_Form-instance-causes-an-error-on-display-tp20945740p20948021.html
>> >> Sent from the Zend Framework mailing list archive at Nabble.com.
>> >> 
>> > 
>> > -- 
>> > Matthew Weier O'Phinney
>> > Software Architect       | [EMAIL PROTECTED]
>> > Zend Framework           | http://framework.zend.com/
>> > 
>> > 
>> 
>> -- 
>> View this message in context:
>> http://www.nabble.com/Attaching-a-model-within-a-Zend_Form-instance-causes-an-error-on-display-tp20945740p20948225.html
>> Sent from the Zend Framework mailing list archive at Nabble.com.
>> 
> 
> -- 
> Matthew Weier O'Phinney
> Software Architect       | [EMAIL PROTECTED]
> Zend Framework           | http://framework.zend.com/
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Attaching-a-model-within-a-Zend_Form-instance-causes-an-error-on-display-tp20945740p20948360.html
Sent from the Zend Framework mailing list archive at Nabble.com.

Reply via email to