【问题标题】:Propel and Collection Methods推进和收集方法
【发布时间】:2016-12-12 21:05:24
【问题描述】:

我正在开发一个以 Propel ORM 作为模型的 PHP 应用程序。它是通过 Composer 安装的,并且所有类都正确自动加载。我可以创建查询、访问数据库和检索数据以填充我的页面。不错。

但我在使用 isLast() 等一些方法时遇到了问题。根据documentation,可以这样使用:

$books = BookQuery::create()->find();
foreach ($books as $book){
  if($books->isLast()){
    // Do something
  }
}

我什至无法复制这个简单的例子。我已经简化了我的代码以查看它是否有效(使用我自己的表和列名):

$provincias=ProvinciasQuery::create()->find();
foreach($provincias as $v){
  echo $v->getProvinciasNombre(); // This works!
  if($provincias->isLast()){ // This doesn't :(
    // Do something
  }
}

我总是遇到同样的错误:

致命错误:未捕获的异常 'Propel\Runtime\Exception\BadMethodCallException' 带有消息'Call 到未定义的方法:isLast' in /path/to/my/app/vendor/propel/propel/src/Propel/Runtime/Collection/Collection.php 第 558 行

isEven()isOdd()isFirst() 等其他方法也是如此。方法isEmpty() 似乎工作正常。

任何帮助将不胜感激。

【问题讨论】:

    标签: php orm propel2


    【解决方案1】:

    找到解决方案here

    $books = BookQuery::create()->find();
    $booksLoop = $books->getIterator();
    foreach ($booksLoop as $book) {
      if ($booksLoop->isFirst()) echo "First";
    }
    

    Propel 2 的官方文档已经过时。我已经在 github 提交了一个问题:https://github.com/propelorm/Propel2/issues/1314

    【讨论】:

      猜你喜欢
      • 2011-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 2018-02-03
      • 2012-03-15
      • 1970-01-01
      相关资源
      最近更新 更多