2
我卡住了使用舊的yii。
它的活動記錄模式,可以使用如下:Yii主動記錄查找功能類提示
class Booking extends CActiveRecord {
/**
* @param string $className
* @return Booking
*/
public static function model($className = __CLASS__)
{
return parent::model($className);
}
public function publish(){
// code to publish the booking
}
// ... the rest of the generated code for the table
}
$model = Booking::model();
$model->getUnallocated();
$booking = $model->findByPk(815);
$booking->publish();
的問題是IDE(PhpStorm)不允許我爲Ctrl +單擊$booking->publish()
發佈功能,因爲它不知道返回的值通過findByPk是一個預訂實例。
我可以解決此類似如下
class Booking extends CActiveRecord {
/**
* @return Booking|null
*/
public function findByPk($pk,$condition='',$params=array())
{
return parent::findByPk($pk,$condition,$params);
}
// ... the rest of the class
}
的問題是,這個解決方案不是一個乾淨的,現在我必須定義每個取回功能find
,findAll
,findByPk
......在每一個AR模型類。
另一種方式來做到這一點是這樣的
/** @var Booking $booking */
$booking = $model->findByPk(815);
但是,這時候它曾經被定義,這也是麻煩,因爲它在很多地方使用。
有沒有一種乾淨的方式來添加儘可能多的方法定義?
內聯變量提示?例如'/ ** @var預訂$ booking * /'在'$ booking = $ model-> findByPk(815);'行之前(或之後)。 – LazyOne
對不起,我補充說,發佈問題後不會做10秒,你可能沒有注意到它 –