小编yiv*_*ivi的帖子

为什么我会收到“目标元素丢失”错误?

我的 Rails 6 应用程序出现错误,因为它找不到我的数据目标,但我不明白为什么。

\n

Chrome\xe2\x80\x99s 控制台中的错误:

\n
Uncaught Error: Missing target element "channel.messages"\n
Run Code Online (Sandbox Code Playgroud)\n

我的看法:

\n
<div class="col-sm-10" data-controller="channel" data-channel-id="<%= @channel.id %>">\n  <!-- Chat messages -->\n  <div class="pr-6 py-4 flex-1">\n    <div data-target="channel.messages">\n      <%= render @channel.messages %>\n    </div>\n        <div class="pb-6 pr-4 flex-none">\n          <div class="flex rounded-lg border-2 border-grey overflow-hidden">\n            <span class="text-3xl text-grey border-r-2 border-grey p-2">\n              <svg class="fill-current h-6 w-6 block" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M16 10c0 .553-.048 1-.601 1H11v4.399c0 .552-.447.601-1 .601-.553 0-1-.049-1-.601V11H4.601C4.049 11 4 10.553 4 10c0-.553.049-1 .601-1H9V4.601C9 4.048 9.447 …
Run Code Online (Sandbox Code Playgroud)

stimulusjs

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

运行“new”命令时,Symfony CLI 不使用正确的 PHP 版本

我的环境设置如下:带有 PHP7.1.33 版本的 Wamp 3、composer 2 和 Symfony 二进制文件。

但是当我尝试运行时symfony new my_project_name --version=4.4 --full出现此错误:

在“./my_project_name”创建“symfony/website-sculpture”项目 您的 PHP 版本 5.4.12 受 CVE-2013-6420 影响,无法安全地执行证书验证,我们强烈建议您升级。[InvalidArgumentException] 在可使用 PHP 版本、PHP 扩展和 Composer 版本安装的版本中找不到版本 4.4.* 的包 symfony/website-sculpture。

正如错误中提到的,使用 PHP 5.4.12,但是当我运行时,php --version我得到 7.1.33 版本。

php symfony symfony4 symfony-4.4 symfony-cli

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

如何注入特定的缓存池?

在我的 Symfony 5 应用程序中,我想针对不同的任务以及不同的环境使用不同的缓存。

例如我的配置如下所示:

framework:
    cache:
        pools:
            cache.auth:
                adapter: cache.adapter.redis
                provider: app.my_custom_redis_provider
            cache.sap:
                adapter: cache.adapter.redis
                provider: app.my_custom_redis_provider
services:
    app.my_custom_redis_provider:
        arguments:
            - '%env(REDIS_URL)%'
            -
                retry_interval: 2
                timeout: '%env(REDIS_TIMEOUT)%'
        class: Redis
        factory:
            - Symfony\Component\Cache\Adapter\RedisAdapter
            - createConnection
Run Code Online (Sandbox Code Playgroud)

我在我的类中使用依赖注入。那么我如何定义特定类使用这两个缓存池中的哪一个呢?

目前我的缓存是这样的:

class SapListService implements ListServiceInterface
{
    use LoggerTrait;

    private CountryServiceInterface $countryService;
    private CurrencyServiceInterface $currencyService;

    public function __construct(
        SapClientFactoryInterface $sapClient,
        CacheItemPoolInterface $cache,
        ParameterBagInterface $params
    ) {
        $sapUser = $params->get('sap_user');
        $sapPw = $params->get('sap_pw');
        $urlStruktur = $params->get('sap_struktur');
        $this->countryService = $sapClient->getCountryService($sapUser, $sapPw, $urlStruktur, $cache);
        $this->currencyService = $sapClient->getCurrencyService($sapUser, $sapPw, …
Run Code Online (Sandbox Code Playgroud)

php symfony symfony-cache symfony5

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

Symfony 如何加载端到端测试的测试环境?

我正在开发另一个使用端到端测试和.env文件的 PHP 项目。但是,在运行测试之前,我需要修改.env文件以指向测试数据库(而不是开发数据库)。当我从事 Symfony 项目时,我认为我不需要这样做,它只是自动加载测试环境。

我从以前使用旧版本的一些经验知道,每个环境曾经有一个不同的前端控制器,例如app.phpapp_dev.php等等,但据我所知,现在情况并非如此。

Symfony 如何知道加载测试环境以进行端到端测试?

php phpunit symfony

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

如何获取在单击任何子元素时触发 onClick 的元素

我的 HTML 代码与此类似:

<a onclick="customerDelete056b0d37(event)" id="ixnat-d26294a3"  data-id="dsddsss3226294a3">
  <i data-js="icons" id="it2ul" class="icons">
     <polyline points="21 8 21 21 3 21 3 8"></polyline>
     <rect x="1" y="3" width="22" height="5"></rect>
     <line x1="10" y1="12" x2="14" y2="12"></line>
  </i>
</a>
Run Code Online (Sandbox Code Playgroud)

<a>现在,如果任何子元素被单击,我想获取该元素。

正如e.target返回已被单击的元素一样。

假设<rect x="1" y="3" width="22" height="5"></rect>被点击了。然后e.target会返回<rect x="1" y="3" width="22" height="5"></rect>

但我想要像本例中那样关联的元素onClick。这将是 <a onclick="customerDelete056b0d37(event)" id="ixnat-d26294a3" data-id="dsddsss3226294a3">

这样我就可以得到data-id这个元素的属性了。(也可以是其他属性,只是data-id作为示例编写)。

另外,因为我不能使用,closest因为它没有固定位置,也不会始终是a标签。它可能是另一个标签,例如button.

如何获取在单击子元素时具有事件处理程序的元素?

注意:所有属性或属性值都不会被固定。一切都将是动态的。

javascript jquery dom-events

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

如何使用 Http 客户端(带有可选更改)将 Symfony 请求转发到另一台服务器?

如何拦截请求并将其发送HttpClient到另一台服务器,并在进行一些修改后从该服务器返回响应?

原始请求将包含数据和文件。我正在寻找最简单的解决方案,直到将原始原始正文复制为字符串。我所坚持的部分是以最短的方式将Request对象插入到HttpClient请求中(无需编写代码来一点一点地复制数据和标头),其余的(处理响应)我将管理。

php proxy symfony symfony-http-foundation symfony-http-client

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

如何调试 Symfony Mailer 传递问题?

我正在开发我的第一个 Symfony 5 项目,并且很难使用内置的MailerInterface. 我之前曾在 Symfony 3 中使用过 Swift Mailer,以前从未遇到过类似的问题。

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Mailer\MailerInterface;
...

class SomeController extends AbstractController {
    public someAction(Request $request, MailerInterface $mailer) {
        ...
        $email = (new TemplatedEmail())
            ->from(new Address('address@example.com', 'My Symfony Mail'))
            //->to($user->getEmail())
            ->to('receiver@example.com')
            ->subject('Subject')
            ->htmlTemplate('email.html.twig');
    
        $mailer->send($email);
    }
}


// .env
#MAILER_DSN=smtp://user:pass@smtp.example.com:25
MAILER_DSN=sendmail://default
Run Code Online (Sandbox Code Playgroud)

如果MAILER_DSN有一些格式错误,则会抛出异常并显示在 Symfony 调试器页面上,例如The "invaliddsn" mailer DSN must contain a scheme...因此,配置的 DSN 似乎smtp://user:pass@smtp.example.com:25是正确的。在其他邮件应用程序中使用相同的凭据、主机和端口没有问题。

但是,使用此代码时不会显示错误/异常,并且我根本没有收到任何邮件。当然,我已经仔细检查了日志(没有错误)、接收者垃圾邮件文件夹(什么也没有)。指定 SMTP 服务器或 sendmail 没有任何区别。

Symfony 文档仅解释如何处理异常,但在我的例子中没有抛出异常。

虽然关于 Symfony 中的邮件问题还有很多其他问题,但其中大多数都涉及较旧的 Swift Mailer …

php symfony symfony-mailer

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

在作曲家中,我必须在 require 之前使用 init 吗?

composer init'我对命令有点困惑composer require

如果我是对的:

  • 如果我想从 packagist 添加一个库到我的项目中,我需要使用require
  • 如果我想将我的库发布到 packagist 我需要使用init

我有一个项目,但我不想其发布到https://packagist.org/

我只想向我的项目添加一些库。

composer init在跑步之前我一定要先跑步吗composer require

我看了一个教程,他们在composer init调用之前使用命令composer require,这让我很困惑,因为我认为这与composer init在 packagist 上发布库有关。

php composer-php

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

在自定义模式而不是公共模式中配置doctrine_migration_versions表

有没有办法将自动doctrine_migration_versions存储在除 之外的模式中public

现在我有一个名为的模式inschrijving,所有实体属性都存储为该模式中的表和列,但不是学说迁移版本表。

这是我的实体的存储方式: 在此输入图像描述

并且doctrine_migration_versions存储在public模式中: 在此输入图像描述

我无法在任何地方找到如何配置原则,以便将doctrine_migration_versions存储在inschrijving模式而不是公共模式中

postgresql doctrine symfony doctrine-migrations

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

尽管在 Symfony Messenger 中将处理程序路由配置为异步,但消息未异步分派

我正在使用 Symfony 4.4 和 Symfony Messenger

Messenger 配置包括传输和路由:

messenger:
    failure_transport: failed

    transports:
        async_medium:
            dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
            retry_strategy:
                max_retries: 3
                delay: 1000
        failed:
            ...

    routing:
        'Name\Space\MessageHandler\SnowplowNotificationHandler': async_medium
Run Code Online (Sandbox Code Playgroud)

尽管处理程序看起来配置正确(当我运行控制台 debug:messenger 时,它显示正确分配给传输)

Messenger

messenger.bus.default

 The following messages can be dispatched:
  Name\Space\Message\SnowplowMessage                                                  
     handled by Name\Space\MessageHandler\SnowplowEmailNotificationHandler  
Run Code Online (Sandbox Code Playgroud)

消息类SnowplowMessage不会排队,而是立即发送到_invoke()处理程序的方法。

我正在使用 AMQP(RabbitMQ 作为传输)并且它配置正确,因为没有显示错误并且命令控制台信使:setup-transport 正确创建队列

php symfony symfony-messenger

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