2017-09-18 6 views
-2

j'ai ce contrôleurcomment rendre les services dans symfony3

namespace InicioBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpFoundation\JsonResponse; 
use Symfony\Component\HttpFoundation\Request; 
use EntidadesBundle\Entity\Usuarios; 
use Symfony\Component\HttpFoundation\Session\Session; 
class DefaultController extends Controller 
{ 
    private $session; 

    public function __construct(){ 
     $this->session = new Session(); 
    } 

    ..... 

     public function ver_rol($rol){ 
     if($this->sacarRol() === $rol){ 
       return true; 
      }else{ 
       return false; 
      } 
    } 

} 

et dans le services.yml, je suis arrivé ceci:

parameters: 
    #parameter_name: value 

services: 
    app.rolSession: 
     class: InicioBundle\Controller\DefaultController 
     arguments: ["i dont know how get paramets"] 

le problème est que cela ne fonctionne pas, revenir symfony une erreur FileLoaderLoadException, que le fichier services.yml ne contient pas de fichier YAML valide

+0

Avez-vous envisagé de consulter le manuel? Si vous utilisez le framework Symfony, le code que vous avez posté n'a pas vraiment de sens. – Cerad

+0

@Cerad oui, mais je veux faire quelque chose diferent –

+0

Ce problème peut être résolu en lisant la documentation de symfony. Ether passe le service de session au constructeur ou utilise un setter. Les deux sont décrits dans les docs. – Daniel

Répondre

0

Il y a un espace avant parameters: dans votre services.yml fichier, peut-être supprimer cela et votre yaml devrait être valide.

Aussi, si vous passez aucun argument au constructeur, vous pouvez simplement supprimer arguments: ["null"]

Une chose, IIRC vous devez ajouter FQCN comme nom de classe, si class: InicioBundle\Controller\Default =>class: InicioBundle\Controller\DefaultController

Alors que nous sommes à la sujet, vous pouvez taper Demande de conseil dans votre action et l'utiliser pour getSession() ou peut-être injecter @session service à votre contrôleur

+0

Salut !, demande de l'aide, savez-vous comment je peux envoyer des arguments? –

+0

@ANDRESFERNANDOMARTINEZVALEN dans votre argumenta array vous pouvez faire 'arguments: ['@session']' et vous devez ajouter des paramètres à votre conatructor, je vous suggère de lire la documentation comme quelqu'un a suggéré parce que ce sont des trucs basiques et Symfony a mieux Documentation – kunicmarko20