【问题标题】:ZendFramework 2 tutorial Post Title:getTitle() Fatal ErrorZendFramework 2 教程 帖子标题:getTitle() 致命错误
【发布时间】:2015-07-21 00:24:06
【问题描述】:

到目前为止,一切都运行良好。我在页面上:http://framework.zend.com/manual/current/en/in-depth-guide/understanding-routing.html

在这个页面上我必须修改 3 个文件:

-module.config.php

-detail.phtml

-ListController.php

我收到以下错误:

帖子详情

帖子标题

致命错误:在线调用 C:\Program Files\xampp\htdocs\path\to\zf2-tutorial\module\Blog\view\blog\list\detail.phtml 中的成员函数 getTitle() on null 6

我没有粘贴代码,因为它与链接中的相同。你们能帮我解决我的问题吗?

公共函数detailAction()

{
    $id = $this->params()->fromRoute('id');

    try {
        $post = $this->postService->findPost($id);
    } catch (\InvalidArgumentException $ex) {
        return $this->redirect()->toRoute('blog');
    }

    return new ViewModel(array(
        'post' => $post
    ));
}

【问题讨论】:

  • 有点宽泛......如果你按照教程所说的去做,它应该可以工作。如果没有,也许你忘记了什么。您必须再次阅读并检查您是否按照所说的一切...
  • 我检查了三次。我不认为是我的错误。恐怕教程有问题。
  • 我们需要在DetailController的detailAction中看到你的代码。根据您在教程中所处的位置,您会得到不同的结果。在第一部分,我怀疑你在哪里,实际上你应该得到一个异常,唉。
  • 我已经编辑了最初的帖子并添加了 detailAction。但正如我在最初的帖子中所说,它与他们网站上的相同。

标签: php zend-framework zend-framework2


【解决方案1】:

感谢您的更新。既然我看到了您在教程中的位置,我认为您在 Mapper 中遇到了问题。见上一页和章节Finishing the Mapper

如果您的映射器找不到文章,它应该抛出一个错误,如第 63 行的代码示例所示。显然,您的映射器返回 null,这会导致您看到 Call to a member function getTitle() on null 的错误。因为 null 毕竟不是对象,也没有 getTitle() 函数。

因此,请查看 ZendDbSqlMapper 类和 find($id) 方法,并确保在找不到 id 时它会引发错误。

【讨论】:

  • 非常感谢您的帮助。我不敢相信我犯了这么愚蠢的错误。我对这个框架相当陌生,一般来说,PHP 都是新的和令人困惑的东西。如果我没有打扰你太多,你能建议我一种更容易学习这些东西的方法吗?比如网站什么的。这个 Zend 教程有点令人困惑。再次非常感谢您。
  • @John94 总的来说我觉得这个教程很不错。用 ZF2 学习 PHP 可能不是最好的方法。我建议先试试 Slim Framework,它会先教你一些基础知识。然后看看 Laravel,最后可能是 ZF。或 Symfony 或 CodeIgniter。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-04
  • 1970-01-01
相关资源
最近更新 更多