PHP未捕获异常:'Twig_Error_Syntax'消息:'未知'资产“功能”。

时间:2017-07-20 15:40:20

标签: php twig

我在php中使用MVC,我正在尝试使用twig作为模板引擎。我正在尝试使用资产来包括css。但我面临一些错误。它不识别assest函数。

我使用了以下代码:

我的核心基础:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">

    <title>{% block title %}{% endblock %} </title>
    <!-- <link href="../../vendor/style.css" rel="stylesheet"> -->

       <link href="{{ asset('../../vendor/style.css') }}" type="text/css" rel="stylesheet" />

</head>
<body>
  <nav>
    <a href="/">Home</a>
    <a href="/posts/index">Posts</a>
  </nav>
  {% block body %}
  {% endblock %}
</body>
</html>

以下是扩展基本模板,仪表板的视图:

{% extends "base.html" %}

{% block title %}Dashboard{% endblock %}

{% block body %}

    <h1>Welcome User!</h1>
    <a href="logout"><button>Logout</button></a>

{% endblock %}

但是我得到了以下错误:

Uncaught exception: 'Twig_Error_Syntax'

Message: 'Unknown "asset" function.'

错误的完整堆栈跟踪如下: 堆栈跟踪:

#0 C:\xampp\app\mvc\vendor\twig\twig\lib\Twig\ExpressionParser.php(364): Twig_ExpressionParser->getFunctionNodeClass('asset', 9)
#1 C:\xampp\app\mvc\vendor\twig\twig\lib\Twig\ExpressionParser.php(152): Twig_ExpressionParser->getFunctionNode('asset', 9)
#2 C:\xampp\app\mvc\vendor\twig\twig\lib\Twig\ExpressionParser.php(92): Twig_ExpressionParser->parsePrimaryExpression()
#3 C:\xampp\app\mvc\vendor\twig\twig\lib\Twig\ExpressionParser.php(45): Twig_ExpressionParser->getPrimary()
#4 C:\xampp\app\mvc\vendor\twig\twig\lib\Twig\Parser.php(123): Twig_ExpressionParser->parseExpression()
#5 C:\xampp\app\mvc\vendor\twig\twig\lib\Twig\Parser.php(79): Twig_Parser->subparse(NULL, false)
#6 C:\xampp\app\mvc\vendor\twig\twig\lib\Twig\Environment.php(512): Twig_Parser->parse(Object(Twig_TokenStream))
#7 C:\xampp\app\mvc\vendor\twig\twig\lib\Twig\Environment.php(544): Twig_Environment->parse(Object(Twig_TokenStream))
#8 C:\xampp\app\mvc\vendor\twig\twig\lib\Twig\Environment.php(363): Twig_Environment->compileSource(Object(Twig_Source))
#9 C:\xampp\app\mvc\vendor\twig\twig\lib\Twig\Template.php(329): Twig_Environment->loadTemplate('base.html', NULL)
#10 C:\xampp\app\mvc\vendor\twig\twig\lib\Twig\Environment.php(373) : eval()'d code(11): Twig_Template->loadTemplate('base.html', 'User/dashboard....', 1)
#11 C:\xampp\app\mvc\vendor\twig\twig\lib\Twig\Environment.php(385): __TwigTemplate_6a4c151f517970c46aab3eedfdfea56b57d9fb29e4119bece3b41b9de1f71014->__construct(Object(Twig_Environment))
#12 C:\xampp\app\mvc\vendor\twig\twig\lib\Twig\Environment.php(288): Twig_Environment->loadTemplate('User/dashboard....')
#13 C:\xampp\app\mvc\Core\View.php(35): Twig_Environment->render('User/dashboard....', Array)
#14 C:\xampp\app\mvc\App\Controllers\User.php(22): Core\View::renderTemplate('User/dashboard....')
#15 [internal function]: App\Controllers\User->loginAction()
#16 C:\xampp\app\mvc\Core\Controller.php(25): call_user_func_array(Array, Array)
#17 C:\xampp\app\mvc\Core\Router.php(100): Core\Controller->__call('login', Array)
#18 C:\xampp\app\mvc\public\index.php(57): Core\Router->dispatch('user/login'

我现在不知道该怎么办。谁能帮我?我如何使用assest或者是否有任何替代方法可以包含我的css和js。

1 个答案:

答案 0 :(得分:0)

您可能在教程中找到的asset函数是Symfony添加的函数,而不是内置于twig本身。

你可以在documentation中看到twig自己的功能。 (链接用于twig2,不确定你使用的是什么。)