Re: Undefined class constant
| From: | Puiu Hrenciuc | Date: | Wed, 19 Sep 2007 14:45:08 +0000 |
| Subject: | Re: Undefined class constant | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-262243@lists.php.net to get a copy of this message | ||
Here is the HTMLFormField constructor, it is pretty simple :
/**
* Creates a new HTMLFormField object
*
* @param string $_formName Name of the form this field belongs to
* @param Column $_column Record object this column derives from
* @param int $_type Type of field, this determines the type of HTML element that will be rendered
* @param string $_class Class name for the HTML element
* @param array $_values Array of display values for combos, lists, radios
* @param string $_label Label to be displayed next to a radio, check box
* @param string $_nullMessage Message that will be displayed when a required field was not filled
* @param string $_invalidMessage Message that will be displayed when the data entered is invalid
* @param string $_tooShortMessage Message displayed when the field value is bellow minimum value or length
* @param string $_tooLongMessage Message displayed when the field value is above maximum value or length
*/
public function __construct($_formName,$_column=null,$_type=0,$_class='' ,$_fieldValues=null,$_label="",$_nullMessage='',$_invalidMessage='',$_tooShortMessage='',$_tooLongMessage='')
{
// Copy column's properties and save passed parameters into local properties
if ($_column instanceof Column )
{
$this->Name=$_column->Name;
$this->RegEx=$_column->RegEx;
$this->Min=$_column->Min;
$this->Max=$_column->Max;
$this->Type=$_column->Type;
$this->Value=$_column->Value;
}
$this->FormName=$_formName;
$this->NullMessage=$_nullMessage;
$this->InvalidDataMessage=$_invalidMessage;
$this->TooLongMessage=$_tooShortMessage;
$this->TooLongMessage=$_tooLongMessage;
$this->Class=$_class;
$this->FieldValues=$_fieldValues;
$this->FieldType=$_type;
}Trust me, it doesn't have any logical explanation :) Puiu T.Lensselink wrote:
On Wed, 19 Sep 2007 17:13:02 +0300, Puiu Hrenciuc <hpuiu@xentra.ro> wrote:;Here are the content for all used variables: $_this->Name: (string) "FilterForm" $_column: StringColumn Object ([Table] => Roles [Name] => RoleName [Function] => like [Type] => 4 [Min] => [Max] => [RegEx] => [AllowedValues] => Array ( )[IsValid] => [IsVisible] => 1 [Sorted] => 0 [Primary] => [Foreign] => [Negated] => [GroupBy] => [Aggregate] => [_value:protected] =>) $_type: (int) 1 T . Lensselink wrote:I'm having a hard time dealing with an error that appeared overnight in one of my PHP script: Fatal error: Undefined class constant 'self::TYPE_HIDDEN' in /#########/classes/framework/HTML/HTMLForm.php on line 120 HTMLForm.php snippet: ......... // Creates the HTMLFormFields foreach ($this->Record->Columns as $_column) { // Add only visible columns if ($_column->IsVisible) { // Default field type $_type=HTMLFormField::ELEMENT_TYPE_TEXT ;On Wed, 19 Sep 2007 15:56:22 +0300, Puiu Hrenciuc <hpuiu@xentra.ro>wrote:Hi everyone,// Adjust default type based on Column type switch ($_column->Type) { case Column::TYPE_AUTONUMBER: $_type=HTMLFormField::ELEMENT_TYPE_HIDDEN ; break;case Column::TYPE_BOOLEAN :$_type=HTMLFormField::ELEMENT_TYPE_CHECKBOX
What happens inside the constructor when you create a new instance of HTMLFormField? Maybe the $_type is validated there. Or i'm missing something in this snippet.break; default: break; 117: } 118: 119: // Add the column to the list of fields 120: $this->Fields[$_column->Name]=new 121: HTMLFormField($this->Name,$_column,$_type); 122: 123: } } As you can see there is no refference to any TYPE_HIDDEN constant at line 120, nor in the HTMLFormField's constructor. I searched the net, but I just can't find the reason of this. Can someone please help me ? Thanks, PuiuWhen the error happens. What are the contents of 120: $_column->Name ?