小编Paw*_*kov的帖子

如何在Twig中将变量从父模板传递给子模板?

我正在使用Symfony和Twig,我找不到下一个问题的解决方案:在我的父模板(index.html.twig)中我有这样的代码:

<noscript>
    {% block noscript %}
    <div class="alert alert-warning">
        <strong>{% block notice %}{{ notice_js_disabled }}{% endblock %}&nbsp;</strong>
        {% block message %}{{ js_disabled }}{% endblock %}
    </div>
    {% endblock %}
</noscript>
Run Code Online (Sandbox Code Playgroud)

我有子模板(category.html.twig),它扩展了index.html.twig模板.

我可以将{{ notice_js_disabled }}var的值从索引模板传递到类别模板吗?
notice_js_disabled从我的Symfony indexAction控制器返回.

UPD: 我创建的问题的解决方案,接下来:我已经创建了一个名为main.html.twig的基本模板,我从控制器渲染元素:

{% block header %}
   {{ render(controller('StoreBundle:Header:index')) }}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

然后,在我的index.html.twig文件中,我做了下面的事情:

{% extends 'Store/tpl/main.html.twig' %}
{% block title %}{{ title }}{% endblock %}
{% block content %}
    <p class="currentPage" hidden>home</p>
    {{ parent() …
Run Code Online (Sandbox Code Playgroud)

html php templates symfony twig

5
推荐指数
1
解决办法
4181
查看次数

如何将国家拨号代码放在括号中的intlTelInput中

我在我的网站上使用intlTelInput.如何使用括号分隔拨号代码.对于前者 这个插件的默认输出是+ 1202someNumber,我需要(+ 1)202someNum?

jquery intl-tel-input

3
推荐指数
1
解决办法
2万
查看次数

Symfony 301 在控制器中重定向

我的 Symfony 应用程序中有一个Event带有参数的实体。参数可以为空且不是必需的,因此,如果缺少该参数,则链接到使用 构建的单个事件页面。但是,如果设置了,则使用此参数构建 url。idslugslugidslug

任务是为具有 slug 的事件创建 301 重定向。我正在尝试使用 symfony 方法redirect(),但遇到了一个问题:当我第一次设置 slug 时,它工作正常并将我从 url 替换event/3event/my-event-slug. 但是,当我删除 slug 或更改它时,浏览器仍然将我重定向到提供的第一个 slug。

我在 Chrome 控制台中检查它,它向我显示我的重定向 301 是从缓存加载的。

如何防止将重定向保存到缓存,或者如何在控制器中以其他方式解决此问题?

php .htaccess redirect symfony

3
推荐指数
1
解决办法
6753
查看次数

运行composer.phar命令时将路径设置为composer.json

我的项目中有composer.phar文件放在一个文件夹中project/web/install,一个composer.json文件放在中project/composer.json。我如何在我的shell脚本文件中指定composer.json文件的路径,该文件也位于project/web/install

shell sh composer-php

1
推荐指数
1
解决办法
610
查看次数

Symfony 路由器呼叫控制器

我正在编写自己的项目并想使用一些 Symfony 组件。我正在为我的项目实施 Sf 路由器,但我不明白如何在路由器中调用控制器。

对于前我有一个类:

<?php

namespace App;

use Symfony\Component\Config\FileLocator;
use Symfony\Component\Routing\Loader\YamlFileLoader;
use Symfony\Component\Routing\Matcher\UrlMatcher;
use Symfony\Component\Routing\RequestContext;
use Symfony\Component\HttpFoundation as Http;
use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\Route;

class AppRouter
{
    public function match() {
        $context = new RequestContext();
        $request = Http\Request::createFromGlobals();
        $context->fromRequest($request);
        $matcher = new UrlMatcher($this->getRoutes(), $context);
        return $matcher->matchRequest($request);
    }

    private function getRoutes() {
        $fileLocator = new FileLocator([__DIR__ . '/../config']);
        $loader = new YamlFileLoader($fileLocator);
        $routes = $loader->load('routes.yml');
        return $routes;
    }
}
Run Code Online (Sandbox Code Playgroud)

我有一些定义的路由,routes.yml所以如果我尝试去注册路由match()方法返回给我一个如下所示的数组:

[
  "_controller" => "Controller\\MyController::testAction"
  "_route" => …
Run Code Online (Sandbox Code Playgroud)

symfony

0
推荐指数
1
解决办法
1865
查看次数