如何在ZF2中输出变量的内容?

时间:2014-11-20 18:47:46

标签: php zend-framework2

我已经开始学习Zend Framework 2,并且我遇到了如何从类中输出变量内容的问题。

I wrote a simple class like below:

 <?php
  namespace example\Model;

  class example{

  protected $name = "sth";

  public function show_name(){
      echo $this-> name;
  }

  }

我在Module.php文件中实例化了它,如下所示:

public function getServiceConfig()
{
    return array(
      'factories' => array(
        // 'example\Model\example' => function($sm){
           'example' => function($sm){
           //  $example_ = new example();
            $example_ = new example\Model\example();
             return $example_;
         },
      ),
    );
 }

我写了一个如下控制器:

    namespace example\Controller;

    use Zend\Mvc\Controller\AbstractActionController;
    use Zend\View\Model\ViewModel;

    class IndexController extends AbstractActionController
    {

    protected $show_example_;

    public function indexAction()
    {

    return new ViewModel(array('example' => $this->show_example()));

    //  return array();
    }

    public function show_example()
    {
    if(!$this->show_example_){
     $this->show_example_ = $sm->get('example\Model\exmaple');
    }
    return $this->show_example_;
    }

我还写了一个index.phtml:

<?php

  echo $example;

 ?>

我能请你帮我这个吗?

3 个答案:

答案 0 :(得分:1)

你的班级不应该回应它应该归还的名字:

<?php
  namespace example\Model;

  class example{

      protected $name = "sth";

      public function show_name(){
          return $this->name;
      }    

  }

然后在你看来你会这样做:

<?php

  echo $example->show_name(); // outputs sth

 ?>

因为$example是您班级的一个实例&#34;示例&#34;其中包含方法show_name,后者又返回值&#34; sth&#34;这将由您的视图文件

回显

答案 1 :(得分:0)

我认为问题出在您的控制器中:

public function show_example()
{
if(!$this->show_example_){
 $this->show_example_ = $sm->get('example\Model\exmaple');
}
return $this->show_example_;
}

它应该是:

public function show_example()
{
if(!$this->show_example_){
 $this->show_example_ = $sm->get('example\Model\example');
}
return $this->show_example_;
}

那么错误信息是什么?

答案 2 :(得分:0)

感谢您的回答,但您建议我更换控制器的控制器与我写的一样。我可以请你再看看一次吗?

在error.log中有以下信息:

PHP Notice:  Undefined variable: example_ in /var/www/html/zf2-tutorial/module/example/view/example/index/index.phtml on line 3, referer: http://localhost/zf2-tutorial/module/example/view/example/index/

     PHP Fatal error:  Call to a member function show_name() on a non-object in /var/www/html/zf2-tutorial/module/example/view/example/index/index.phtml on line 3, referer: http://localhost/zf2-tutorial/module/example/view/example/index/