Eh, başlık her şeyi söylüyor. İyi çalışan bir giriş formum var. Ancak yapmam gereken, kullanıcı veritabanı kaydı değiştiğinde zaman damgasını depolayan bir alana ek olarak, kullanıcı başarıyla oturum açtığında zaman damgasını kaydetmek. Yani bunlar iki farklı alan. İstediğimi yapan bu cevabı here buldum. Ne yazık ki Symfony3 sınıfında ContainerAware sınıfı mevcut değil, bu yüzden EntityManager örneğini İşleyicime nasıl alacağımı bilmiyorum. Eminim ki, basit bir çözüm var, ama bunu bulamıyorum.Symfony3 kaydetme oturum açma Kimlik doğrulama başarısından sonra veritabanında zaman damgası
Mintguo'dan ipucu ile bir adım daha ilerideyim. İşte şimdiye kadar benim kodudur:
use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface;
use Symfony\Component\DependencyInjection\ContainerAwareTrait;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
class AuthenticationHandler implements AuthenticationSuccessHandlerInterface{
use ContainerAwareTrait;
/**
* {@inheritDoc}
* @see \Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface::onAuthenticationSuccess()
*/
public function onAuthenticationSuccess(Request $request, TokenInterface $token) {
$token->getUser()->setAnmeldat(new \DateTime("now"));
$this->container->get('doctrine')->getEntityManager()->flush();
return new RedirectResponse($this->container->get('router')->generate('/auth/bnme'));
}
}
Ama giriş yapmaya çalıştığınızda Symfony'nin bir özel durum atar: Hata: Nesne olmayan üye işlev, get() için arayın. Burada sorun nedir?
ama soru nedir? Timestamp değerini girişte depolamak için? Sadece Varlığı düzenleyin ve tabloyu yeniden oluşturun, bu yüzden alanı var ve girişte doldurun ... Burada bir komplikasyon nedir? – Farside
Bunun için iki farklı veritabanı alanı kullanmalıyım. Kayıtta bir değişiklik için bir alan ve giriş zaman damgası – Raistlin
Raistlin için iyi bir giriş, iyi girdi, sadece bu ek bilgiyi sorgunun kendisine koy, daha spesifik ol. Teşekkür ederim. – Farside