私はsymfony 2.8プロジェクトに参加しています。別の開発者は、ユーザーが特定のタスクに対して権限を持っているかどうかを確認する投票者を書いています。私はすでに問題なくコントローラでこの機能を使用しますが、今、私は動的メニューを取得するためにサービスを書いていると私は方法isGranted
にアクセスする方法がわからない:サービス内の投票者メソッドにアクセスするにはどうすればいいですか
Error: Attempted to call an undefined method named "isGranted" of class.
namespace NameSpaceQuestion\Question\Service;
use Doctrine\ORM\EntityManager;
class MenuBuilder
{
private $areasTools;
public $menuItems = array();
private $em;
public function __construct(EntityManager $em)
{
$this->em = $em;
}
public function createMenuCourse($course,$mode,$user)
{
$repository = $this->em->getRepository('eBundle:AreasTools');
$areas = $repository->findAll();
//Retrieve every area from the db
$itemsMenu = array();
foreach ($areas as $area) {
//If the user has permissions the area is included in the menu and proceed to check the tools that belong to the current area
if($this->isGranted($mode,$area,$user)){
$itemsMenu[$area->getName()] = array();
$toolsPerCourse = $this->em->getRepository('eBundle:CourseTool')->findByAreaToolAndCourse($area, $course);
foreach ($toolsPerCourse as $toolCourse) {
//If the user has permissions the tool is included in the menu under the respective Area
if(($this->isGranted($mode,$toolCourse,$user))){
array_push($itemsMenu[$area->getName()], $toolCourse->getName());
}
}
}
}
return $itemsMenu;
}
}