小编Ale*_*lex的帖子

在 Bitbucket 管道中 assertQueued 失败

正如标题中所说,assertQueued 在我的 Bitbucket 管道中失败,但在本地没有失败。

有问题的测试可以在下面看到:

Mail::fake();
Queue::fake();

/*Generating users and triggering emails*/

$users = User::all();
foreach($users as $user){
    Mail::assertQueued(Email::class, function ($mail) use ($user) {
        return $mail->hasTo($user->preferred_email);
    });
}
Run Code Online (Sandbox Code Playgroud)

它只是创建用户,向这些用户发送电子邮件,然后检查这些电子邮件是否已排队。

phpunit.xml 文件设置环境变量,如下所示:

<env name="APP_ENV" value="testing"/>
<env name="DB_DATABASE_API" value="homestead"/>
<env name="MAIL_DRIVER" value="log"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="database"/>
Run Code Online (Sandbox Code Playgroud)

所有这些都在本地工作。然而,当通过 Bitbucket 管道运行它时,上面的测试失败了:

The expected [App\Mail\Email] mailable was not queued.
Failed asserting that false is true.
Run Code Online (Sandbox Code Playgroud)

电子邮件如下:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class Email extends …
Run Code Online (Sandbox Code Playgroud)

php phpunit bitbucket laravel docker

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

在帖子内容的第一个 h2 标签之前插入广告

我正在尝试在帖子中的第一个 h2 标签之前插入广告。我尝试过的代码如下,但广告出现在内容之后而不是之前。我希望在内容之前插入广告,而不是在内容之后。

/*Insert ads after second paragraph of single post content.*/
add_filter( 'the_content', 'prefix_insert_post_ads' );

function prefix_insert_post_ads( $content ) {

    $ad_code = 'This is my ads';

    if ( is_single() && ! is_admin() ) {
        return prefix_insert_after_paragraph( $ad_code, 1, $content );
    }

    return $content;
}
//Parent Function that makes the magic happen
function prefix_insert_after_paragraph( $insertion, $paragraph_id, $content ) {
    $closing_p = '</h2>';
    $paragraphs = explode( $closing_p, $content );
    foreach ($paragraphs as $index => $paragraph) {

        if ( trim( $paragraph ) …
Run Code Online (Sandbox Code Playgroud)

html php wordpress

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

Cloudwatch 代理不向 cloudwatch 发送日志

我正在尝试向 CloudWatch 发送两批日志。

这是两个日志:

  1. /var/log/apache2/access.log
  2. /var/log/apache2/error.log

我使用 amazon-cloudwatch-agent-config-wizard 创建配置文件,这里是显示正确文件路径的文件片段:

"collect_list": [
    {
         "file_path": "/var/log/apache2/access.log",
         "log_group_name": "*group_name*",
         "log_stream_name": "apache-access"
    },
    {
         "file_path": "/var/log/apache2/error.log",
         "log_group_name": "group-name*",
         "log_stream_name": "apache-error"
    }
]
Run Code Online (Sandbox Code Playgroud)

我在配置中加载了:

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s
Run Code Online (Sandbox Code Playgroud)

并没有遇到错误,也没有错误并显示在 amazon-cloudwatch-agent.log 中。

检查 Amazon CloudWatch 代理的状态表明它正在运行并且没有错误。还声明模式有效。

所有这一切的独特之处在于我删除了旧的 CloudWatch 代理并安装了新的代理。我在两个 EC2 实例上完成了此操作,其中一个一切正常,另一个没有将日志发送到 CloudWatch。

简而言之,为什么日志没有上传到 CloudWatch?我能做些什么来解决这个问题?

任何帮助将不胜感激。

amazon-web-services amazon-cloudwatch

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

升级到 Laravel 7 后日期未转换

我刚刚从 Laravel 6 (PHP 7.4) 升级到 Laravel 7 (PHP 7.4),模型中的转换日期完全停止工作。

例如,在我的用户模型中,我有以下$dates数组:

protected $dates = [
    'online_at'
];
Run Code Online (Sandbox Code Playgroud)

返回以下内容:2020-08-17T00:00:00.000000Z但我期望返回一个 Carbon 对象。

MySQL数据库中的字段是DATETIME。

created_atupdated_at、 和字段也发生同样的情况deleted_at。所有型号的情况也是如此。

我尝试将字段移动到$casts数组中,但得到相同的结果。

任何帮助将非常感激。

php laravel php-carbon

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

Webpack Encore 未在基本模板中加载 JavaScript

我在 Symfony 4 项目中使用 Webpack Encore,并且在我的 中包含 JavaScript 的 Twig 帮助器时base.html.twig

{% block javascripts %}
    {{ encore_entry_script_tags('app') }}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

JavaScript 不会加载,但是,当在我的模板之一 ( index.html.twig) 中包含完全相同的 Twig 帮助程序时,JavaScript 会加载。

所以我的问题是,为什么上面的 Twig 助手可以在我的模板之一中工作,但不能在我的基本模板中工作?

javascript symfony twig webpack

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