I've never used yii, but I just had a quick look at it and _form.php is a template with $model being externally defined. During coding, PhpED has no way of knowing what object class $model is defined as. This is a common problem with templates.
I don't know off-hand what class $model is either as I don't have an installed project to run, but if you breakpoint this line in _form.php then you can use the debugger to find out what the class name is:
<?php echo "<?php echo \$form->errorSummary(\$model); ?>\n"; ?> |
Then you can fake a variable declaration to that class name so that you can get code completion to work:
<?php
/** @var CLASS_NAME */
if (false) $model = $model; // $model never gets assigned, but causes PhpED to use the @var
?>
<?php echo "<?php echo \$form->errorSummary(\$model); ?>\n"; ?> |
You will now hopefully get code completion on $model. I've used this trick and it does work on probably most object variables, except $this because PhpED does not allow that to be re-assigned to an arbitrary object.
Bear in mind that it is also possible that $model could be a different object class on each call, so it might not be consistent.