2016-04-14 51 views
0

我正在使用Laravel基本身份驗證,但我真的很努力地在視圖中使用Auth對象。Laravel和Twig Bridge打印身份驗證對象

有很好的例子使用刀片,但我使用樹枝(樹枝橋),並不能解決這個問題。

我可以vardump(Auth::user()->name)在我的控制器在常規的PHP,但我怎麼在樹枝文件(我的觀點文件)相同?

我該如何做類似的事情;

{% 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 then extensions => facades,那應該是那個,這是相當好記錄! TIL也是! :-) –

+0

我想說這不是很好的記錄給不知道該怎麼做的人。我會說這是可怕的文件。我不知道如何使用它。查看我的更新... – mikelovelyuk