亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

slim/twig-view - TwigExtension 模板函數未指定且工作

slim/twig-view - TwigExtension 模板函數未指定且工作

PHP
喵喔喔 2023-11-03 17:50:11
我按照此處描述的步驟在 Slim https://github.com/slimphp/Twig-View/tree/3.1.0#usage中使用 twig-view但當我嘗試時,我在屏幕上收到以下錯誤使用 TwigExtension 中使用的任何模板函數Fatal error: Uncaught Twig\Error\SyntaxError: Unknown "url_for" function.我已經$ composer require slim/twig-view:^3.0成功運行,我的composer.json文件如下所示"require": {        "slim/slim": "4.*",        "slim/psr7": "^1.2",        "league/container": "^3.3",        "slim/twig-view": "^3.0"    },這是我的代碼require_once __DIR__ . '/../vendor/autoload.php';$container = new \Slim\Factory\Container();\Slim\Factory\AppFactory::setContainer($container);$container->add('view', function () {    return \Slim\Views\Twig::create(__DIR__ . '/views', [        'cache' => false,    ]);});$app = \Slim\Factory\AppFactory::create();$app->add(\Slim\Views\TwigMiddleware::createFromContainer($app));require_once __DIR__ . '/../routes.php';// routes.php$app->get('/', function ($request, $response, $args) use ($container) {    return $container->get('view')->render($response, 'home.twig', ['foo' => 'test']);})->setName('home');// home.twig...<body>    Home {{ foo }}    <br>    <a href="{{ url_for('about') }}">About</a></body>...如果我從樹枝模板中刪除 ,url_for則頁面可以在瀏覽器上正常加載。我嘗試在我的代碼庫和供應商文件夾中搜索 TwigExtension,但找不到任何類似的文件。我在這里做錯了什么嗎?
查看完整描述

1 回答

?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

看起來這是因為聯盟容器。似乎每次調用函數時都會創建一個新的 Twig 實例,$container->get('view')每次都會返回一個新實例,而不是引用同一個實例。所以解決方法是


$twig = \Slim\Views\Twig::create(__DIR__ . '/views', [

    'cache' => false,

]);


$container->add('view', function () use (&$twig) {

    return $twig;

});


// Or this instead

$container->add(

    'view', 

    \Slim\Views\Twig::create(__DIR__ . '/views', [

        'cache' => false,

    ])

);


查看完整回答
反對 回復 2023-11-03
  • 1 回答
  • 0 關注
  • 199 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號