symfony 4设置全局设置并在枝中实现服务

蓝调小姐

我正在设置全局设置以在所有树枝模板中实现此目的。因此,我还可以例如设置error.html.twig页面。

我发现描述很简短。您可以在twig.yaml中实现全局变量,并为数据库中的变量编写服务。见下面我的尝试:)但是它还没有工作:(

我认为我的服务不是书面的。请帮忙 :)

twig:

  globals:
    setting: '@App\Service\Websitesettings'

我的服务档案

<?php
namespace App\Service;
use App\Entity\Sitesetting;


class Websitesettings
{
    public function setting()
    {
        $setting = $this->getDoctrine()->getRepository(Sitesetting::class)
            ->findAll()[0];

        return $setting;
    }
}
佳美

随机类不能只$this->getDoctrine()在其方法内部调用并期望获得一些对象。PHP现在将如何从中获取信息?代码检查/反射甚至将如何假设,getDoctrine应该如何定义?

相反,您应该EntityManagerInterface在构造函数中注入,因为这样,Symfony(框架)及其自动装配可以合理地为您的服务标识期望的参数,并且类型提示将告诉它要注入的内容:

<?php
namespace App\Service;
use Doctrine
use Doctrine\ORM\EntityManagerInterface;


class Websitesettings
{
    /** @var EntityManagerInterface */
    public $em;

    public function __construct(EntityManagerInterface $em) {
        $this->em = $em;
    }

    public function setting()
    {
        $setting = $this->em->getRepository(Sitesetting::class)
            ->findAll()[0];

        return $setting;
    }
}

希望能有所帮助。

但是,潜在的问题是:您确定这是最好的方法吗?显然,您有一整个表专用于您的网站设置,并且显然只包含一行(这很可悲)。Yaml和Symfony具有一些非常好的功能,您可以使用它们在配置本身中或通过环境变量提供某些参数。但这超出了问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Symfony中设置Amazon SNS

来自分类Dev

Symfony服务

来自分类Dev

在 Symfony 4 中创建包含区域设置的 URL

来自分类Dev

Symfony序列化器-设置循环参考全局

来自分类Dev

Symfony2基于子域设置全局参数

来自分类Dev

如何在Symfony 2中为所有控制器设置全局变量?

来自分类Dev

如何使用symfony2在Twig中设置全局变量

来自分类Dev

如何在Symfony 2中为所有控制器设置全局变量?

来自分类Dev

在symfony / httpfoundation中设置/删除多维数组

来自分类Dev

从Symfony2中的AuthenticationHandler设置flashMessage

来自分类Dev

在命令Symfony3中设置详细

来自分类Dev

从Symfony2中的AuthenticationHandler设置flashMessage

来自分类Dev

Symfony在侦听器中设置Cookie

来自分类Dev

在命令Symfony3中设置详细

来自分类Dev

在symfony / httpfoundation中设置/删除多维数组

来自分类Dev

在 Symfony 中设置默认环境变量

来自分类Dev

Symfony 4 中的注解

来自分类Dev

如何设置请求symfony的内容?

来自分类Dev

设置日期时间symfony / bootstrap

来自分类Dev

用于PHP / Symfony的SonarQube设置

来自分类Dev

Symfony 2.4基础项目设置

来自分类Dev

symfony 2.4 cookie未设置

来自分类Dev

Symfony 2如何设置后备

来自分类Dev

如何设置symfony实体的实例

来自分类Dev

Symfony - 使用 LexikJWTAuthenticationBundle 设置 TokenController

来自分类Dev

从Symfony 4中的树枝模板调用服务

来自分类Dev

如何使用Symfony访问树枝扩展中的全局服务功能?

来自分类Dev

如何使用symfony / panther设置代理服务器

来自分类Dev

如何在Symfony 2服务容器中设置Doctrine MongoDB存储库