Získání dat z Repository do Base Presenteru
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Klobasa
- Člen | 16
Ahoj,
mam pro vás zřejmě jednoduchou věc, ale..
Potřebuji z Repository dostat do BasePresenteru jméno uživatele, který se získává z databáze.
BasePresenter
<?php
namespace App\Presenters;
use Nette;
use App\Model;
/**
* Base presenter for all application presenters.
*/
abstract class BasePresenter extends Nette\Application\UI\Presenter {
/** @var \Repository @inject */
private $baseModel;
public function beforeRender() {
if ($this->getUser()->isLoggedIn() == true) {
$this->template->username = $this->baseModel->getUsername($this->getUser()->getId())->username;
} else {
$this->template->username = null;
}
}
}
Repository.php ve složce model
<?php
abstract class Repository extends Nette\Object {
/** @var Nette\Database\Context */
protected $database;
public function __construct(Nette\Database\Context $database) {
$this->database = $database;
}
/* Vrátí jméno uživatele */
public function getUsername($userId) {
return $this->database->table("users")->where("id", $userId)->fetch();
}
}
Vrací chybu:
Call to a member function getUsername() on null
a dump($this->baseModel); vypisuje NULL
Díky za radu