正如标题中所说,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) 我正在尝试在帖子中的第一个 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) 我正在尝试向 CloudWatch 发送两批日志。
这是两个日志:
我使用 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?我能做些什么来解决这个问题?
任何帮助将不胜感激。
我刚刚从 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_at
、updated_at
、 和字段也发生同样的情况deleted_at
。所有型号的情况也是如此。
我尝试将字段移动到$casts
数组中,但得到相同的结果。
任何帮助将非常感激。
我在 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 助手可以在我的模板之一中工作,但不能在我的基本模板中工作?