Tsundoku
Tsundoku

Reputation: 9408

Showing a view in Zend Framework

I've never worked with Zend Framework before, but I've worked with others (CodeIgniter, Kohana, etc). Right now I was asked to just show a view that wasn't existing so I started looking into the documentation and examples I could find and I've always found examples that use the Model part of the MVC, but in this case I just need to load a view and I can't figure out how to do that. I have this:

File: "BookController":

require_once("Initiate.php");

class BookController extends Initiate {

  public function init() {
    parent::init();
  }

  public function bookAction(){
    #$client = Zend_Auth::getInstance()->getIdentity();
    $view = new Zend_View();
    echo $this->view->render('book.phtml');

    #$this->view->assign("book", $client);
    #echo $this->view->render('book.phtml');

  }

the view is called "book.phtml" and is found in /application/views/scripts/bookapi/

What am I missing?

Upvotes: 0

Views: 86

Answers (3)

markus
markus

Reputation: 40675

Given that eveything is setup correctly with MVC, your Controller should extend Zend_Controller_Action:

class BookController extends Zend_Controller_Action
{
    public function indexAction()
    {
        $this->view->funnyText = 'This is a funny text.';
    }
}

Then, in your application/views/scripts/book/ folder, there has to be a index.phtml. Which could look like that:

<p>
    <?php echo $this->funnyText; ?>
</p>

That's it, nothing more required.

Btw. doesn't make sense to have a controller called book and then also an action called book

Upvotes: 2

Mr Coder
Mr Coder

Reputation: 8186

you don't have to manage view yourself there is an Action Controller Helper called View Renderer it does your job for you all you need to follow is its naming convention i.e if your controller name is 'BookController' then its view file should be located at views/scripts/book/boo.phtml .

Upvotes: 1

JohnD
JohnD

Reputation: 4002

Assuming BookController extends Zend_Controller, it should automatically setup the view and you shouldn't have to render it. Your view file should be in /application/views/scripts/book/book.phtml. Follow the quick start for more information.

Upvotes: 0

Related Questions