2016-07-11 5 views
-1

Ich brauche eine PHP-Funktion, um Zahlen in Buchstaben zu konvertieren. Ich erstelle eine Datei namens: converter.php im Ordner "Controller". Ich muss die Funktion namens "convertirnumero_letras ($ number)" in der converter.php einfügen. Ich rufe die Funktion „convertir_numero_letras ($ number)“ aus den folgenden Controller:Symfony2: Wie PHP-Funktion von Controller aufgerufen wird?

public function convertirAction() 
    { 
     $number=1234; 
     $this->convertir_numero_letras($number); 

     return $this->render('contratos/mostrar_cifra.html.twig', array('numero_convertido' => $numero_convertido)); 

    } 

Aber dieser Code nicht funktionieren. Ich erhalte die folgende Fehlermeldung:

Es wurde versucht, eine undefinierte Methode namens "convertirnumero_letras" der Klasse "BackendBundle \ Controller \ ContratosController" aufzurufen.

Wie kann ich das beheben?

Antwort

2

können Sie einen Ordner im Bündel wie yourBundel/Helper
erstellen und in Ordner wie ConverHelper.php
wie diese benutzerdefinierte Klasse erstellen:

class ConvertHelper 
{ 
    public static function numero_letras($param) 
    { 
     return 'converted value'; 
    } 
} 

und dann können Sie in jedem Controller aufrufen und eine beliebige bündeln wie folgt aus:

yourBundle\helper\ConverterHelper::numero_letras('someting'); 

nicht Namespace von ConverterHelper zu Ihrer contoller Datei hinzuzufügen vergessen

Beispiel:

// file: GRF/BlogBundle/Helper/ConverterHelper.php 
<?php 

namespace GRF\BlogBundle\Helper; 


class ConverterHelper 
{ 
    public static function toNum($param) 
    { 
     return $param; 
    } 
} 

und Verwendung in der Steuerung:

//file controller 
    <?php 

namespace GRF\BlogBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 


class PostController extends Controller 
{ 

    public function indexAction() 
    { 
     return new Response(\GRF\BlogBundle\Helper\ConverterHelper::toNum(32434)); 
    } 
} 
+0

Vielen Dank für Ihre Antwort, aber die Lösung, die Sie vorschlagen, funktioniert nicht. Ich bekomme folgende Fehlermeldung: ** Die Autoloader-Klasse "BackendBundle \ Controller \ ContratosController" wird in der Datei "C: \ proyectos \ cursotierobis/src \ BackendBundle \ Controller \ ContratosController.php" definiert. Die Datei wurde gefunden, aber die Klasse war nicht darin enthalten, der Klassenname oder Namespace hat wahrscheinlich einen Tippfehler. ** –

+0

Ich teste es in leeren Projekt, es funktioniert gut, wenn Converter-Ordner hinzugefügt und Klasse erstellen, legen Sie diesen Code in meinem Controller - achten Sie auf Namespace-Exit (\ someBundleName \ Helper \ ConverterHelper :: toNum (32434)); - und Klassenkonverter sollte in Helper Namespace sein – Fadakar

+0

Danke für Ihre schnelle Antwort. In einem Moment werde ich versuchen, die von Ihnen vorgeschlagene Lösung erneut anzuwenden. –

Verwandte Themen