find()、findAll()、findByAttributes() などを使用するときに、PhpStorm がモデルの属性をオートコンプリートしたいだけです...
私は次のようなモデルを持っています:
/**
* member model parameters:
* @property integer $id
* @property integer $city_id
* @property string $e_mail
*/
class Member extends CActiveRecord
{
/**
* @static
* @param string $className
* @return Member
*/
public static function model($className = __CLASS__)
{
return parent::model($className);
}
...
次のようなアクティブ レコード メソッドを使用する場合:
$member = Member::model()->findByAttributes(array('e_mail'=>'Foo Bar'));
私がこれを書いたときにオートコンプリートを試みてください:
$member->
リスト内の CActiveRecord のパラメーターとメソッドのみが表示されます。
変えてみた
/**
* Finds a single active record that has the specified attribute values.
* See {@link find()} for detailed explanation about $condition and $params.
* @param array $attributes list of attribute values (indexed by attribute names) that the active records should match.
* An attribute value can be an array which will be used to generate an IN condition.
* @param mixed $condition query condition or criteria.
* @param array $params parameters to be bound to an SQL statement.
* @return CActiveRecord the record found. Null if none is found.
*/
public function findByAttributes($attributes,$condition='',$params=array())
{...
このメソッドの return パラメータは、CActiveRecord から Member、self、parent、$this、child などに渡されます。オートコンプリートは、「Member」の場合にのみ機能しました。ただし、この方法は Member モデルだけでなくすべてのモデルで使用されるため、これは解決策ではありません。
誰かが解決策を知っていれば(できればフレームワークのコアメソッドを変更せずに)、喜んでいます。