所以我为laravel 5.1项目设置了一个预定的命令.它起作用了,命令已经开始,但相当愚蠢的是我没有考虑如何阻止它.通常你不想停止它,但命令是将近50万行插入数据库表中,我只是想确保我可以在不登录服务器的情况下启动它.我显然需要在某些时候运行它但不是现在,所以有没有办法停止命令中流?
Laravel 5.8 中是否可以模拟或伪造模型方法的输出?
例如,考虑这个模型
class Website extends Model
{
public function checkDomainConfiguration($domain): bool
{
try {
$records = dns_get_record($domain, DNS_A);
} catch (ErrorException $e) {
return false;
}
if (isset($records[0]['ip']) && $records[0]['ip'] === $this->server->ipv4_address) {
return true;
}
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
出于测试的目的,我需要告诉 phpunit,当此方法触发时(在控制器中调用),返回 true,如果我故意希望它失败,则返回 false。在测试中我工厂创建了一个网站,当然它会通过php方法失败dns_get_record。
我已经阅读了 Laravel 文档,并在 google 上搜索了有关模拟模型方法的信息,但似乎找不到任何内容,除了在if方法周围封装一个大的内容来检查我是否处于测试模式,以及我是否只是返回真的。<-- 好极了。
更新这是我如何在控制器中调用方法的示例
class SomeController extends Controller
{
public function store(Website $website, Domain $domain)
{
if (! $website->checkDomainConfiguration($domain->domain)) {
return response([
'error' => 'error message'
], …Run Code Online (Sandbox Code Playgroud) 更新到macOS Sierra 10.12后,我无法再同步到gutHub.从我得到的桌面软件
您可能无权访问[项目].检查首选项以确保您仍然登录.
我已经检查过并且已登录,并且肯定有权使用回购.
在命令行上我得到了
权限被拒绝(publickey).致命:无法从远程存储库读取.
因此,无论何时将产品添加到我们的购物篮中,都会发送购物车消息
客户匹配的运输区英国(#3)
和
注册送货方式实例UK Delivery(#table_rate-3)
但我不想要他们.我似乎无法在后端的设置中看到它们可以关闭的位置.我不想删除所有邮件,因为
{product}已成功添加到您的购物车
需要留下来.任何帮助赞赏.
Laravel 5.6
我正在尝试通过电子邮件发送 Laravel 通知。我想让一些文本加粗,并插入换行符,而不是该line($text)方法带来的全新段落。所以我在通知类中尝试过这个。我也尝试将\n字符串用于新行。
return (new MailMessage)
->subject('Booking Confirmed - Please Read')
->greeting('Hello ' . $this->booking->user->first_name . ',')
->line('Thank you for booking. Here are your booking details:')
->line($this->booking->provider->providerType->name . '<br>' .
$date . '<br>' .
$this->booking->start_at . '<br>' .
$this->booking->address_1 . '<br>' .
$this->booking->address_2 . '<br>' .
$this->booking->address_3 . '<br>' .
$this->booking->city . '<br>' .
$this->booking->postcode . '<br>' .
'£' . $this->booking->price
)
->line('<strong>Need to cancel?</strong><br>' .
'Don\'t forget to contact the provider on the …Run Code Online (Sandbox Code Playgroud) 在 Docker 上本地启动了一个 Laravel 5.8 应用程序。
我可以在浏览器上运行该应用程序,连接到 Sequel Pro 上的数据库,但是当我尝试迁移数据库时,我收到了可怕的[2002] Connection refused错误。
我已将 mysql 端口设置为 3307,因为我有另一个 mysql 容器使用 3306 用于不同的项目。我不想为每个项目不断停止和启动 docker,因为我可能会定期在这两个项目之间切换,这就是我使用不同端口的原因。
这是 docker-compose 文件中的 mysql 部分。
mysql:
image: mysql:5.7
ports:
- "3307:3306"
environment:
MYSQL_HOST: 127.0.0.1
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: forecast
MYSQL_USER: forecast
MYSQL_PASSWORD: secret
volumes:
- mysql:/var/lib/mysql
networks:
- forecast
Run Code Online (Sandbox Code Playgroud)
这是我的 .env 文件数据库设置密钥
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3307
DB_DATABASE=forecast
DB_USERNAME=forecast
DB_PASSWORD=secret
Run Code Online (Sandbox Code Playgroud)
另外值得注意的是,出于同样的原因,我在端口 81 而不是 80 上运行该应用程序。在我的浏览器中,我必须输入{domain.testing}:81哪个有效。