Ich bin mir nicht sicher, ob der Titel klar genug ist. Ich werde es besser erklären: Ich benutze 2 Bundles in meinem Projekt, MenuBundle und IntranetBundle.Erhalten Sie alle Informationen über eine db in einem anderen Bundle
MenuBundle ist hier, um die Navigation auf der linken Seite zu erstellen und das andere Bundle ist für die gesamte Website.
Mein Problem ist, dass ich überprüfen möchte, ob einer der Benutzer in der Datenbank (die Tabelle wird von der Entität, dem Controller usw. im IntranetBundle verwendet) Geburtstag hat und dann die Farbe eines ändert Element auf dem Navigationsteil.
Aber ich weiß nicht, wie man die Benutzer anruft und prüft, ob man Geburtstag hat (die Methode ist bereits im IntranetBundle angelegt, ich habe sie benutzt, wenn sie für andere Sachen benötigt wird, aber nur im IntranetBundle), ich weiß nur nicht, wie die Methode aufzurufen und überprüfen sie es in MenuBundle)
Hier ist der Anfang des Builder (das Ende ist für mein Problem nicht sinnvoll):
namespace Osaxis\MenuBundle\Menu;
use Knp\Menu\FactoryInterface;
use Symfony\Component\DependencyInjection\ContainerAware;
class Builder extends ContainerAware
{
public function mainMenu(FactoryInterface $factory, array $options)
{
$route = $this->container->get('request')->get('_route');
$menu = $factory->createItem('root');
$menu->addChild('Accès', array('route' => 'logout'));
$menu['Accès']->setAttribute('class', 'menuGcheLevel1'.($route == 'login' ? ' On' : ''));
// si l'utilisateur est authentifie (non anonyme)
$security = $this->container->get('security.context');
if ($security->getToken() !== null && $security->isGranted('IS_AUTHENTICATED_FULLY')) {
/** @var \Osaxis\IntranetBundle\Entity\Users $user */
$user = $security->getToken()->getUser();
// Gestion des congés
if ($security->isGranted('ROLE_ADMIN')) {
$menu->addChild('Gestion des congés', array('route' => 'admin_conge'));
$menu['Gestion des congés']->setAttribute('class', 'menuGcheLevel1'.(fnmatch('admin_conge*', $route) ? ' On' : ''));
} else if (!$user->getUsrStagiaire() && $user->getUsrRol()->getRolCode() != 'ROLE_CONSULTATION') {
$menu->addChild('Gestion des congés', array('route' => 'conge'));
$menu['Gestion des congés']->setAttribute('class', 'menuGcheLevel1'.(fnmatch('conge*', $route) ? ' On' : ''));
}
// Gestion des jours fériés et Equipe Osaxis
if ($security->isGranted('ROLE_ADMIN')) {
$menu->addChild('Gestion des jours fériés', array('route' => 'jours_feries_index'));
$menu['Gestion des jours fériés']->setAttribute('class', 'menuGcheLevel1'.(fnmatch('jours_feries_*', $route) ? ' On' : ''));
$menu->addChild('Equipe Osaxis', array('route' => 'users_index'));
$menu['Equipe Osaxis']->setAttribute('class', 'menuGcheLevel1'.(fnmatch('users_*', $route)? ' On' : ''));
if (fnmatch('users_*', $route) && !fnmatch('users_changePwd', $route)) {
$menu->addChild('Gestion des utilisateurs', array('route' => 'users_index'));
$menu['Gestion des utilisateurs']->setAttribute('class', 'menuGcheLevel2'.(fnmatch('users_*', $route) && !fnmatch('users_trombi*', $route) && !fnmatch('users_reunions*', $route) ? ' On' : ''));
$menu->addChild('Trombinoscope', array('route' => 'users_trombi'));
$menu['Trombinoscope']->setAttribute('class', 'menuGcheLevel2'.(fnmatch('users_trombi*', $route) ? ' On' : ''));
$menu->addChild('Réunions délégués', array('route' => 'users_reunions'));
$menu['Réunions délégués']->setAttribute('class', 'menuGcheLevel2'.(fnmatch('users_reunions*', $route) ? ' On' : ''));
}
}
if($user->isBirthday()){
echo "test";
}
die „if“ Am Ende testet man nur den angemeldeten Benutzer.
Ich möchte wissen, wenn einer der Benutzer heute Geburtstag hat.
Ich hoffe, ich habe alle notwendigen Details gegeben.
Vielen Dank im Voraus.
Ich verstehe nicht, was Ihre Frage ist. Möchten Sie überprüfen, ob ein Benutzer heute Geburtstag hat? Was macht 'isBirthday()'? –
Ja, das möchte ich machen, aber alles über die Benutzer ist in IntranetBundle. Und die Methode gibt nur wahr zurück, wenn der Benutzer, der die Methode aufruft, heute Geburtstag hat. isBirthday() funktioniert, ich benutze es im IntranetBundle, um Änderungen vorzunehmen, wenn jemand Geburtstag hat. Ich möchte nur Änderungen im anderen Bundle vornehmen.Aber ich weiß nicht, wie man es benutzt. –
Was gibt die '$ user' Variable zurück? Wenn der aktuelle Benutzer zurückgegeben wird, was ist das Problem beim Aufruf von 'if ($ user-> isBirthday) '? Ich nehme an, 'isBirthday()' ist eine Methode in der Klasse '\ Osaxis \ IntranetBundle \ Entity \ Users'? –