2016-04-14 4 views
0

私はLaravel基本認証を使用していますが、実際にはビュー内でAuthオブジェクトを使用するのに苦労しています。LaravelとTwig BridgeでAuthオブジェクトを出力する

Bladeを使用した良い例がありますが、私はTwig(枝)を使用しており、これを解決できません。

私のコントローラでは普通のPHPでvardump(Auth::user()->name)できますが、私はtwigファイル(私のビューファイル)で同じようにどうしますか?

どうすればよいですか?

{% if auth.guest %} 

または、

{{ Auth.user().name }} 

私は非常に多くの方法を試みましたが、何も得られませんでした。

答えて

0

これは、twig環境に関数を追加することなく、静的変数/クラスまたは静的メソッドにアクセスすることは不可能です。

あなたがそうのような機能を登録することができます。

$twig = new Twig_Environment($loader); 
$twig->addFunction('staticCall', new Twig_Function_Function('staticCall')); 

function staticCall($class, $function, $args = array()) 
{ 
    if (class_exists($class) && method_exists($class, $function)) 
     return call_user_func_array(array($class, $function), $args); 
    return null; 
} 

、私はあなたが行うことができるはずだと思う:

{% if staticCall('Auth', 'guest') %} 
    Hi there stranger, why don't you <a href="/login">login</a>? 
{% endif %} 

私はこの答えからコードを取った:twig template engine, using a static function or variable

+0

はこれをでした助けて; https://github.com/rcrowe/TwigBridge/blob/master/src/Extension/Laravel/Auth.php – mikelovelyuk

+0

実際、はいです。 auth_guestはそれになります!これもまた助けになるかもしれません:https://github.com/rcrowe/TwigBridge/blob/master/src/Extension/Loader/Facades.php /config/twigbridge.phpを見てから、extensions => facades、それは1つにすべきです、それはむしろうまく書かれている! TILも! :-) –

+0

私はそれが何をすべきかを知らない人にはうまく文書化されていないと言いたいと思います。私は恐ろしい文書だと言いたい。私はそれをどのように使うのか分かりません。私の更新を参照してください... – mikelovelyuk

関連する問題