Juned Ansari
Juned Ansari

Reputation: 5275

how to i print session on view page in zend framework

I am very new to zend framework, and going to add session in my small application but i dont know how to print session variable to my header.phtml page.

UsersTable.php

public function fetchbyWhere($where) {
         $rowset = $this->tableGateway->select($where);
         $row = $rowset->current();
         if (!$row) {
            return;
         }
         return $row;
    }

IndexController.php

<?php

namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Application\Model\Users;          // <-- Add this import
use Zend\Session\Container; // We need this when using sessions

class IndexController extends AbstractActionController {

    protected $usersTable;

    public function getUsersTable() {
        if (!$this->usersTable) {
            $sm = $this->getServiceLocator();
            $this->usersTable = $sm->get('Application\Model\UsersTable');
        }
        return $this->usersTable;
    }

    public function indexAction() {
        $request = $this->getRequest();
        if ($request->isPost()) {
            $user = $request->getPost('txtuser');
            $pass = $request->getPost('txtpassword');

            $wher = array('username' => $user, 'password' => $pass);
            $resultSet = $this->getUsersTable()->fetchbyWhere($wher);

            //var_dump($resultSet);

            if($resultSet)
            {
                $user_session = new Container('user');
                $user_session->ses_user = $resultSet->username;
                return new ViewModel(array(
                    'msg' => 'valid user',
                    'sesuser' => $user_session->ses_user,
                ));
            }
            else {
                return new ViewModel(array(
                    'msg' => 'not a valid user',
                ));
            }

        } else {
            return new ViewModel();
        }
    }

}

now i dont know how to print this session on header.phtml page.

Upvotes: 1

Views: 1070

Answers (1)

Devang
Devang

Reputation: 427

You need to add session container in your header file as well.

Add following line in your header file.

 <?php
        use Zend\Session\Container; // We need this when using sessions
        $user_session = new Container('user');
        if(isset($user_session->ses_user))
        echo "user:".$user_session->ses_user;
  ?>

Upvotes: 2

Related Questions