ZF2 getServiceLocator () no encontrado?

Por mi vida no puedo conseguir que $ this-> getServiceLocator () funcione en mi controlador. He leído y lo he intentado todo. Estoy adivinando que me estoy perdiendo algo? Aquí hay algo de código.

namespace Login\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\Session\Container as SessionContainer;
use Zend\Session\SessionManager;
use Zend\View\Model\ViewModel;
use Zend\Mvc\Controller;

use Login\Model\UserInfo;

class LoginController extends AbstractActionController
{
    private $db;

    public function __construct()
    {
        $sm = $this->getServiceLocator();

        $this->db = $sm->get('db');
    }
    ...

El error que estoy recibiendo es:

Fatal error: Call to a member function get() on a non-object in /product/WishList/module/Login/src/Login/Controller/LoginController.php on line 21 

Respuestas a la pregunta(2)

Su respuesta a la pregunta