Ich habe 5 Klasse Categoria, Produto, Subcategoria, Subproduto und Comanda und für i-Suche in allen Klassen auszuführen versuchen, einen Dienst wie machen:Anruf auf eine Elementfunktion hat() auf null Symfony2
namespace AppBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; class AccessClassController extends Controller{ /** * Retorna todas as categorias ativas */ public function CategoriasAtivasAction() { $em = $this->getDoctrine()->getManager(); $categorias = $em->getRepository('AppBundle:Categoria')->findByAtivo(1); return $categorias; } }
Und i versuchen, Zugriff auf den Dienst auf ComandaController
class ComandaController extends Controller { ... public function newAction(Request $request, $id) { $comanda = new Comanda(); $categorias = $this->get('categorias.ativas')->CategoriasAtivasAction(); ...
Dann symfony Rückkehr Fehler
Call to a member function has() on null 500 Internal Server Error - FatalThrowableError
Mein services.yml hat
services: categorias.ativas: class: AppBundle\Controller\AccessClassController
Was ist falsch?
Sie können einen Controller (Verlängerung Controller) als Service nutzen. – Alsatian
Eigentlich kann man solange den Behälter injizieren. Es ergibt keinen Sinn, das zu tun. Und in diesem Fall wird der ComandaController irgendwo ohne den Container erstellt. Daher hat der Fehler. – Cerad