代码之家  ›  专栏  ›  技术社区  ›  WJR

Propel ORM-遍历find()中的数据不会提示getter

  •  0
  • WJR  · 技术社区  · 11 年前

    这是让我烦恼的事情之一。

    我使用检索数据 find() 方法,并使用foreach进行迭代:

    $ladies = ValentineQuery::create()->find();
    
    foreach ($ladies as $maybe) 
    {
        echo $maybe->getSeconddate();  //<-- DOES NOT AUTO HINT AT GETTER METHODS!!! arg
    }
    

    getSeconddate() 实际上工作正常,但不会自动提示可用的getter。

    如果我使用 findPk() 方法,我的IDE将自动提示getter。

    有人有同样的问题吗?我希望这只是我的编辑。

    WIN7上的Propel 1.7、PhpStorm 4.0.3、PHP 5.3

    1 回复  |  直到 11 年前
        1
  •  0
  •   LazyOne    11 年前

    这些PHPDoc注释中的一条将为您完成任务(当然,如果您不介意手动键入提示):

    /** @var MyClass[] $ladies */
    $ladies = ValentineQuery::create()->find();
    
    /** @var MyClass $maybe */
    foreach ($ladies as $maybe) 
    {
        /** @var MyClass $maybe */
        echo $maybe->getSeconddate();  //<-- DOES NOT AUTO HINT AT GETTER METHODS!!! arg
    }
    

    对于更自动化的东西(这样您就不必在任何地方放置此类类型提示),请检查这些方法的PHPDocs——也许可以将它们放置在那里(例如。 @return MyClass[] ) .. 或通过 @method 标记(这完全取决于它是如何实现的——不能肯定,因为我根本不擅长Propel)。