このコードに従ってください、私は同じ問題を抱えていました、そして私はzfcUserを介してログインしたユーザーのIDを使用する方法を管理しました
トップサイドの他のモジュールコントローラーでは、
use Zend\EventManager\EventManagerInterface;
次に、同じクラスでこの2つの関数を作成します。
public function setEventManager(EventManagerInterface $events)
{
parent::setEventManager($events);
$controller = $this;
$events->attach('dispatch', function ($e) use ($controller) {
if (is_callable(array($controller, 'checkUserIdentity')))
{
call_user_func(array($controller, 'checkUserIdentity'));
}
}, 100);
}
public function checkUserIdentity()
{
if ($this->zfcUserAuthentication()->hasIdentity()) {
echo "<pre>"; print_r($this->zfcUserAuthentication()->getIdentity());die;
}
}
この種の出力が得られます
Admin\Entity\User Object
(
[id:protected] => 2
[username:protected] =>
[email:protected] => rajat.modi@softwebsolutions.com
[displayName:protected] =>
[password:protected] => $2y$14$2WxYLE0DV0mH7txIRm7GkeVJB3mhD4FmnHmxmrkOXtUFL7S9PqWy6
[state:protected] =>
)
これで、ユーザーがログインしているかどうかに関係なく、自動的にIDが取得され、ログインしていない場合は、ログインページにリダイレクトされます。
これがお役に立てば幸いです