【问题标题】:ZF2 plugin return value gives a Object could not be converted to stringZF2 插件返回值给出了一个无法转换为字符串的对象
【发布时间】:2014-08-29 12:40:10
【问题描述】:

我构建自己的插件只是为了学习框架。它只是返回一个日期()。当我尝试回应它时,我的视图中出现错误。理解这个错误并不难,但难的是(或者至少,我认为难的是)我应该如何从插件中返回它,这样我的视图(以及最终的其他视图)不需要任何额外的信息就像 pluginReturn 一样?>

该插件在 module.config.php 中注册(它可以工作,否则我不会出错)。

好吧,一些代码:

插件:

<?php
namespace Tijdmachine\Controller\Plugin;

use Zend\Mvc\Controller\Plugin\AbstractPlugin;

class TellTheTime extends AbstractPlugin{
    /**
    * @return string
    */
    public function giveMyTime(){
        return date('H:i:s');
    }
}

涉及的控制器行:

$plugin = $this->TellTheTime();
        $plugin->giveMyTime();

        $views = new ViewModel(array('text' => 'Het is nu de tijd.', 'pluginReturn' => $plugin));

查看线:

<?=$this->pluginReturn?>

我得到的错误: 可捕获的致命错误:Tijdmachine\Controller\Plugin\TellTheTime 类的对象无法在第 19 行的 /home/snoech/code/zftuts/trunk/module/Tijdmachine/view/tijdmachine/index/index.phtml 中转换为字符串

【问题讨论】:

    标签: php zend-framework2


    【解决方案1】:

    您的$plugin 包含该对象。将变量中的值重新赋值给视图:

    $plugin = $this->TellTheTime();
    $myDate = $plugin->giveMyTime();
    $views = new ViewModel(array('text' => 'Het is nu de tijd.', 'pluginReturn' => $myDate));
    

    $plugin = $this->TellTheTime();
    $views = new ViewModel(array('text' => 'Het is nu de tijd.', 'pluginReturn' => $plugin->giveMyTime()));
    

    【讨论】:

    • 我可能不会也不会在这个网站上发誓,但我肯定应该看到这一点。这只是周五下午的小插曲。但事实上,这是正确的答案。谢谢!
    • 不客气。周末快到了,保持乐观:)。编辑:顺便说一句,如果可以关闭这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 2013-06-28
    • 2019-12-28
    • 1970-01-01
    相关资源
    最近更新 更多