přihlašování uživatele – Service User has not been set
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- bofin
- Člen | 5
Zkouším jednoduché přihlášení uživatele. Začátek mého
LoginPresenteru níže.
V konstruktoru jsem zkoušel vytvořit novou instanci uživatele, vyžaduje ale
IUserStorage jako první parametr, proto jsem si napsal vlastní implementaci
rozhraní. Neúspěšně, jakási chyba o nemožnosti mnohonásobné
dědičnosti.
Metoda getUser mi háže chybu Service User has not been set.
Mohl bych prosím dostat nějakou radu jak na to? Podle tutoriálu to mělo být na pár minut, ale již mi to zabralo minimálně hodinu hledání..
namespace App\Presenters;
use Nette;
use Nette\Security\User;
use App\Model;
use Nette\Application\UI;
use Tester\Environment;
class LoginPresenter extends BasePresenter
{
/** @var Nette\Database\Context */
private $database;
/** @inject @var Nette\Security\User */
public $user;
/** @var Nette\Security\IAuthenticator */
private $authenticator;
/**
* @var \App\Model\UserManager
* @inject
*/
public $userManager;
public function __construct(Nette\Database\Context $database)
{
$this->database = $database;
$this->authenticator = new \App\Model\UserManager($database);
$this->user = $this->getUser(); // CHYBA
// $this->user->setAuthenticator($this->authenticator);
}
- chemix
- Nette Core | 1310
@bofin mrkni na https://github.com/…rManager.php a pak na https://github.com/…resenter.php
Jak se to cele propoji je pomoci DI a konfigurace viz https://github.com/…/config.neon a https://doc.nette.org/…introduction