2016-07-11 12 views
-1

数値を文字に変換するには、PHP関数を使用する必要があります。 "controller"というフォルダにconverter.phpという名前のファイルを作成します。 converter.phpに "convertir_numero_letras($ number)"という名前の関数を呼び出す必要があります。 は、私は、次のコントローラから「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)); 

    } 

しかし、このコードは動作しません。次の エラーメッセージが表示されます。

"BackendBundle \ Controller \ ContratosController"クラスの "convertir_numero_letras"という未定義のメソッドを呼び出そうとしました。

これを修正できますか?

答えて

2

あなたはyourBundel /ヘルパーのように、バンドル内
をフォルダを作成し、このようConverHelper.php
などのフォルダにあなたのカスタムクラスを作成することができます。

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

、その後、あなたが任意のコントローラに呼び出し、任意のことができますこのようにバンドル:

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

は、あなたのcontollerファイル

に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

お返事のおかげで、しかし、あなたは動作しません提案するソリューション。次のエラーメッセージが表示されます。** Autoloaderは、クラス "BackendBundle \ Controller \ ContratosController"を "C:¥proyectos¥cursospierobis/src¥BackendBundle¥Controller¥ContratosController.php"ファイルに定義することを期待しています。ファイルが見つかりましたが、クラスがそれに含まれていなかった、クラス名または名前空間はおそらくタイプミスを持っています。 ** –

+0

私は空のプロジェクトでそれをテストします、それは正常に動作します。コンバータフォルダが追加され、クラスを作成したら、このコードを私のコントローラに入れてください - 名前空間出口(\ someBundleName \ Helper \ ConverterHelper :: toNum(32434))に注意してください。 - そしてクラスコンバータはヘルパーネームスペースにあるべきです – Fadakar

+0

あなたの素早い応答に感謝します。しばらくして、あなたが提案したソリューションを再度適用しようとします。 –

関連する問題