我正在使用Laravel基本身份验证,但我真的很难在视图中使用Auth对象。
使用Blade有很好的例子,但我使用的是Twig(树枝桥(,无法解决这个问题。
我可以在常规 php 中vardump(Auth::user()->name)
我的控制器,但我如何在 twig 文件(我的视图文件(中获得相同的内容?
我该怎么做这样的事情;
{% if auth.guest %}
或;
{{ Auth.user().name }}
我尝试了很多不同的方法,但一无所获。
这与 twig 的工作方式有关,如果不向 Twig 环境添加函数,就不可能访问类上的静态变量/classes 或静态方法。
您可以像这样注册一个函数:
$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 模板引擎,使用静态函数或变量