我的问题是关于MySQL优化和良好实践.
我必须得到带有订单偏好的翻译文本列表:如果我找不到英文文本,我想使用法文文本,如果它不存在,我想用西班牙语.
换句话说,我有:
id lang text
1 fr text_FR
1 en text_EN
1 es text_ES
2 fr text_FR2
3 fr text_FR3
3 es text_ES3
Run Code Online (Sandbox Code Playgroud)
而且我要:
id lang text
1 en text_EN
2 fr text_FR2
3 fr text_FR3
Run Code Online (Sandbox Code Playgroud)
所以我读了一些像这样,这个,那个或那个的主题.好.我试过这个:
SELECT text FROM (
SELECT id, text
FROM translation
ORDER BY FIELD(lang, 'en', 'fr', 'es')
) tt GROUP BY tt.id;
Run Code Online (Sandbox Code Playgroud)
但是,当我解释这个查询时,我可以读到:
id select_type table partitions type possible_keys key key_len ref rows Extra
1 PRIMARY …Run Code Online (Sandbox Code Playgroud) 我不明白为什么在laravel forge和laravel宅基地上的guzzle请求真的很慢.我没有更改锻造和宅基地的默认服务器配置.
像这样的每个简单的请求......
$client = new GuzzleHttp\Client();
$response = $client->get('path-to-my-api');
Run Code Online (Sandbox Code Playgroud)
...大约需要150ms(在宅基地和锻造处).这附加在每个请求(相同的网络或互联网)上.我读了一些关于guzzle的帖子,对于每个用户来说似乎都非常快,但对我来说却不是.
版本:
真的很奇怪的是,当我这样做时(异步)......
$req = $client->createRequest('GET', 'path-to-my-api', ['future' => true]);
$client->send($req)->then(function ($response) {
});
Run Code Online (Sandbox Code Playgroud)
......大约需要10毫秒.这很好,但我不明白为什么.而且我不想执行异步请求.
也许我的时间测量是错误的,但我认为这是好的:我使用这样的PHP调试栏:
// .....
// synch
Debugbar::startMeasure('synch','SYNCH Request');
$response = $client->get('path-to-my-api');
Debugbar::stopMeasure('synch');
// asynch
Debugbar::startMeasure('asynch','ASYNCH Request');
$req = $client->createRequest('GET', 'path-to-my-api', ['future' => true]);
$client->send($req)->then(function ($response) {
Debugbar::stopMeasure('asynch');
});
Run Code Online (Sandbox Code Playgroud)
我知道回答这个问题并不容易(因为它含糊不清),但我现在还不知道:(.如果你愿意,我可以编辑它.非常感谢.
我正在使用默认通知系统(Laravel 5.3)发送电子邮件.我想在消息中添加HTML标记.这不起作用(它以纯文本显示强标签):
public function toMail($notifiable)
{
return (new MailMessage)
->subject('Info')
->line("Hello <strong>World</strong>")
->action('Voir le reporting', config('app.url'));
}
Run Code Online (Sandbox Code Playgroud)
我知道这是正常的,因为文本显示在{{ $text }}邮件通知模板中.我尝试使用与csrf_field()帮助器相同的系统:
->line( new \Illuminate\Support\HtmlString('Hello <strong>World</strong>') )
Run Code Online (Sandbox Code Playgroud)
但它不起作用:它显示为纯文本.
我可以在不更改视图的情况下发送HTML标记吗?(我不想更改视图:保护文本适用于所有其他情况).希望它足够清楚,如果不是抱歉.
我试图在数据库表中的一行中上传多个图像并在显示页面中访问它们.我已经尝试过本教程: laraveldaily.com/upload-multiple-files-laravel-5-4/ 但有两个不同的表制定并建立关系.
我希望这发生在一个表中.
我可以从这样的元组创建一个数组:
let a = (1, 2, 3);
let b = [a.0, a.1, a.2];
Run Code Online (Sandbox Code Playgroud)
有没有办法在不命名元组的每个元素的情况下执行此操作?就像是:
let b = a.to_array();
Run Code Online (Sandbox Code Playgroud) 我正在使用Eloquent(Laravel 5.4)和一个postgreSQL数据库.我创建了一个users带有name字符串列的表.运行此代码将返回按名称排序的用户但搜索区分大小写:
$users = \App\User::orderBy('name')->get();
Run Code Online (Sandbox Code Playgroud)
此代码返回如下内容:
Alix
Beatrice
Zorro
adam
bill
Run Code Online (Sandbox Code Playgroud)
有没有办法让这个列表不区分大小写.我希望有类似的东西:
adam
Alix
Beatrice
bill
Zorro
Run Code Online (Sandbox Code Playgroud)
有没有办法获得"不区分大小写的顺序"结果?
我的问题是orderBy和Eloquent,而不是sortBy和Collections.
在没有在Laravel 5.5文档中创建Mailable类的情况下,我看不到发送Mail的任何信息.我知道之前有可能(5.2),但我不记得怎么做.
还有可能吗?它被弃用了吗?我在文档中遗漏了什么吗?如何在Laravel 5.5中不创建Mailable的情况下发送邮件?
我想要像:
Mail::fromText('hello world')->to('test@example.org')->send();
Run Code Online (Sandbox Code Playgroud) 出于测试目的,我想通过队列发送原始邮件。
我可以发送这样的原始邮件:
Mail::raw('bonjour', function($message) {
$message->subject('Email de test')
->to('test@example.org');
});
Run Code Online (Sandbox Code Playgroud)
但是有没有办法通过队列发送原始邮件(不创建视图或可邮寄)?
根据文档,使用Laravel,我可以Mailable通过控制器返回a ,以在浏览器中显示它。它有助于预览邮件。
有没有办法在浏览器中预览邮件通知?
我试过了:
return (new MyNotification())->toMail($some_user);
Run Code Online (Sandbox Code Playgroud)
但这不起作用:
响应内容必须是实现__toString()的字符串或对象,即“ object”。
我在 PostgreSQL 数据库中使用此表:
create table if not exists "Service" (
_id uuid not null primary key,
service text not null,
"count" integer not null,
"date" timestamp with time zone,
team uuid,
organisation uuid,
"createdAt" timestamp with time zone not null,
"updatedAt" timestamp with time zone not null,
unique (service, "date", organisation),
foreign key ("team") references "Team"("_id"),
foreign key ("organisation") references "Organisation"("_id")
);
Run Code Online (Sandbox Code Playgroud)
当我尝试upsert使用Sequelize以下代码时,它会抛出错误:
Service.upsert({ team, date, service, organisation, count }, { returning: true })
Run Code Online (Sandbox Code Playgroud)
错误是:
错误:重复的键值违反了唯一约束“Service_service_date_organization_key” …
laravel ×7
php ×7
laravel-5 ×4
laravel-5.5 ×3
mysql ×2
postgresql ×2
curl ×1
eloquent ×1
guzzle ×1
laravel-5.3 ×1
laravel-mail ×1
node.js ×1
optimization ×1
rust ×1
sequelize.js ×1
sql ×1