Difference between #3 and #10 of
The Comedy of Errors

Changes

Title unchanged

The Comedy of Errors

Category unchanged

Others

Yii version unchanged

Tags changed

errors comedy

Content changed

[...]
```php
<h1>Edit item: <?php $model->label; ?></h1>
```

Now spend your time debugging why
$model->label has no value set.
 
 
 
Rules for numbers
 
-----------------
 
 
In the model rules() method put:
 
 
```php 
array('count', 'number', 'integerOnly'=>true),
 
```
 
then try
 
 
```php 
array('count', 'numeric', 'integerOnly'=>true),
 
```
 
and only then look it up: 'numerical'
you are not seeing the value of $model->label even though you are clearly asking for it.
 
 
 
The echo too much
 
-----------------
 
In the view put:
 
 
```php 
<h1>Edit item: <?php echo $this->widget('CWidget'); ?></h1>
 
```
 
"Object of class CWidget could not be converted to string." A widget may not have an echo.
 
 
 
The true false
 
--------------
 
In the config file or wherever you are to provide a boolean value, put:
 
~~~
 
'someOption' => 'false',
 
~~~
 
Then read the PHP manual to find out why this does not evaluate to false like you wanted it to.
 
 
 
Rules for numbers
 
-----------------
 
 
In the model rules() method put:
 
 
```php 
array('count', 'number', 'integerOnly'=>true),
 
```
 
then try
 
 
```php 
array('count', 'numeric', 'integerOnly'=>true),
 
```
 
and only then look it up: 'numerical'.
 
 
 
Rules for enums
 
---------------
 
 
In the model rules() method put:
 
 
```php 
array('format', 'range', 'in' => array('html', 'rss2', 'atom', 'json', 'xml')),
 
```
 
then later remind yourself that Yii is not SQL.
 
 
 
Rules for foreign keys
 
----------------------
 
 
In the model rules() method put:
 
 
```php 
array('foreingKey', 'exists', 'className' => 'SomeModel', 'attributeName' => 'id'),
 
```
 
Sure we have 'exists' method for CActiveRecord model, but ...
 
 
Ending ?> tag in non-view
 
---------------------------------
 
 
Extend a base class or edit a config file (needs to be included before the sessions starts) and leave a ?> at the ending with at least one trailing white space character. Make sure output buffering is off. Cry manly tears while trying to figure out why "Cannot modify header information - headers already sent" spams your log files.
 
 
Semicolon
 
---------
 
 
 
```php 
$total = 0;
 
foreach($model->rels as $rel);
 
{
 
    $total += $rel->count;
 
}
 
echo $total; // wrong result!!
 
```
 
 
I wasted 12 hours debugging this.
 
 
`visible` option in CMenu and `null` values
 
-----------------------------------------
 
 
Use a parameter `feature.enabled` to enable/disable a feature through configuration. And then wonder why you still see the menu item, even if you have no `feature.enabled` parameter at all.
 
 
 
```php 
<?php $this->widget('zii.widgets.CMenu', array(
 
    'items' => array(
 
        array(
 
            'label' => 'A new feature',
 
            'url' => array('feature/view'),
 
            'visible' => Yii::app()->params['feature.enabled'],
 
        ),
 
```
 
 
`Yii::app()->params['feature.enabled']` returns `null` if the parameter is not defined. But in this case that's different from `false` because `CMenu` uses `isset($items['visible'])` which returns `false` for `null` values
.
19 0
15 followers
Viewed: 18 984 times
Version: 1.1
Category: Others
Written by: fsb
Last updated by: Mike
Created on: Dec 7, 2011
Last updated: 10 years ago
Update Article

Revisions

View all history