获取另一个 Bundle 中使用的数据库的所有信息
Get all the infos of a db used in another Bundle
我不确定标题是否足够清楚。我会更好地解释:
我在我的项目中使用了 2 个 Bundle,MenuBundle 和 IntranetBundle。
MenuBundle 用于构建左侧导航,另一个 Bundle 用于整个网站。
我的问题是我想检查数据库中的一个用户(IntranetBundle 上的 table 被实体、控制器等使用)是否过生日然后更改导航部分元素的颜色。
但我不知道如何打电话给用户以及如何检查一个人是否过生日(该方法已经在 IntranetBundle 中创建,我在其他东西需要时使用它,但只在 IntranetBundle 中使用,我只是不知道如何调用该方法并在 MenuBundle 中检查它)
这里是Builder的开头(结尾对我的问题没有用):
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";
}
最后的"if"只是测试登录的用户
我想知道有没有用户今天过生日
我希望我提供了所有必要的细节。
提前致谢。
好的。我找到了另一种方法,不用用表情做奇怪的事情。
在这里:
$repo = $this->container->get('doctrine')->getRepository('IntranetBundle:Users');
$users = $repo->findAll();
for ($i=0; $i<sizeof($users); $i++){
if($users[$i]->isBirthday()){
echo 'un anniv '. $users[$i];
}
}
这样我就可以知道有多少人过生日,哪些人过生日。
我不确定标题是否足够清楚。我会更好地解释: 我在我的项目中使用了 2 个 Bundle,MenuBundle 和 IntranetBundle。
MenuBundle 用于构建左侧导航,另一个 Bundle 用于整个网站。
我的问题是我想检查数据库中的一个用户(IntranetBundle 上的 table 被实体、控制器等使用)是否过生日然后更改导航部分元素的颜色。
但我不知道如何打电话给用户以及如何检查一个人是否过生日(该方法已经在 IntranetBundle 中创建,我在其他东西需要时使用它,但只在 IntranetBundle 中使用,我只是不知道如何调用该方法并在 MenuBundle 中检查它)
这里是Builder的开头(结尾对我的问题没有用):
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";
}
最后的"if"只是测试登录的用户
我想知道有没有用户今天过生日
我希望我提供了所有必要的细节。
提前致谢。
好的。我找到了另一种方法,不用用表情做奇怪的事情。 在这里:
$repo = $this->container->get('doctrine')->getRepository('IntranetBundle:Users');
$users = $repo->findAll();
for ($i=0; $i<sizeof($users); $i++){
if($users[$i]->isBirthday()){
echo 'un anniv '. $users[$i];
}
}
这样我就可以知道有多少人过生日,哪些人过生日。