2016-07-11 4 views
-1

Мне нужно использовать функцию PHP для преобразования чисел в буквы. Я создаю файл с именем: converter.php в папке «Контроллер». Мне нужно вызвать функцию с именем "convertir_numero_letras ($ number)" insert в convert.php. я называю функцию «convertir_numero_letras ($ номер)» из следующего контроллера:Symfony2: Как вызвать функцию PHP из контроллера?

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

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

    } 

Но этот код не работает. Я получаю следующее сообщение об ошибке :

Попытка вызвать неопределенный метод с именем «convertir_numero_letras» класса «BackendBundle \ Controller \ ContratosController».

Как я могу это исправить?

ответ

2

вы можете создать папку в пачке, как yourBundel/Helper
и создать вам собственный класс в папку, как ConverHelper.php
так:

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

, а затем вы можете позвонить в любой контроллер и любой расслоение, как это:

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

не забудьте добавить пространство имен ConverterHelper в файл

-регулятора

пример:

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

namespace GRF\BlogBundle\Helper; 


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

и использование в контроллере:

//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

Спасибо за Ваш ответ, но решение, которое вы предлагаете не работает. Появляется следующее сообщение об ошибке: ** Предполагаемый класс автозагрузчика «BackendBundle \ Controller \ ContratosController» должен быть определен в файле «C: \ proyectos \ cursospierobis/src \ BackendBundle \ Controller \ ContratosController.php». Файл был найден, но класс не был в нем, имя класса или пространство имен, вероятно, имеет опечатку. ** –

+0

Я тестирую его в пустом проекте, он отлично работает, когда добавлена ​​папка конвертера и создает класс, поместите этот код в мой контроллер - обратите внимание на пространство имен - выход (\ someBundleName \ Helper \ ConverterHelper :: toNum (32434)); - и преобразователь класса должен находиться в вспомогательном пространстве имен – Fadakar

+0

Спасибо за ваш быстрый ответ. В какой-то момент я попытаюсь снова применить решение, которое вы предлагаете. –

Смежные вопросы