小编rap*_*2-h的帖子

MySQL:ORDER BY FIELD/GROUP BY

我的问题是关于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)

mysql optimization

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

在laravel锻造和宅基地上慢慢下来

我不明白为什么在laravel forge和laravel宅基地上的guzzle请求真的很慢.我没有更改锻造和宅基地的默认服务器配置.

像这样的每个简单的请求......

$client = new GuzzleHttp\Client();
$response = $client->get('path-to-my-api');
Run Code Online (Sandbox Code Playgroud)

...大约需要150ms(在宅基地和锻造处).这附加在每个请求(相同的网络或互联网)上.我读了一些关于guzzle的帖子,对于每个用户来说似乎都非常快,但对我来说却不是.

版本:

  • curl 7.35.0(x86_64-pc-linux-gnu)libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
  • PHP版本5.6.0
  • Guzzle 5.1.0

真的很奇怪的是,当我这样做时(异步)......

$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)

我知道回答这个问题并不容易(因为它含糊不清),但我现在还不知道:(.如果你愿意,我可以编辑它.非常感谢.

php curl laravel guzzle laravel-forge

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

Laravel:通知中的HTML

我正在使用默认通知系统(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标记吗?(我不想更改视图:保护文本适用于所有其他情况).希望它足够清楚,如果不是抱歉.

php notifications laravel laravel-5.3

5
推荐指数
4
解决办法
5160
查看次数

如何在laravel中上传多个图像

我试图在数据库表中的一行中上传多个图像并在显示页面中访问它们.我已经尝试过本教程: laraveldaily.com/upload-multiple-files-laravel-5-4/ 但有两个不同的表制定并建立关系.

我希望这发生在一个表中.

php mysql laravel

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

从元组创建数组

我可以从这样的元组创建一个数组:

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)

rust

5
推荐指数
2
解决办法
1122
查看次数

orderBy对Laravel不敏感

我正在使用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.

php postgresql laravel eloquent laravel-5

5
推荐指数
2
解决办法
2661
查看次数

在Laravel 5.5中无需创建Mailable即可发送邮件

在没有在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)

php laravel laravel-5 laravel-mail laravel-5.5

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

通过队列 Laravel 发送原始邮件

出于测试目的,我想通过队列发送原始邮件。

我可以发送这样的原始邮件:

Mail::raw('bonjour', function($message) {
   $message->subject('Email de test')
           ->to('test@example.org');
});
Run Code Online (Sandbox Code Playgroud)

但是有没有办法通过队列发送原始邮件(不创建视图或可邮寄)?

php laravel laravel-5 laravel-5.5

5
推荐指数
2
解决办法
3685
查看次数

在浏览器中预览邮件通知

根据文档,使用Laravel,我可以Mailable通过控制器返回a ,以在浏览器中显示它。它有助于预览邮件。

有没有办法在浏览器中预览邮件通知?

我试过了:

return (new MyNotification())->toMail($some_user);
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

响应内容必须是实现__toString()的字符串或对象,即“ object”。

php laravel laravel-5 laravel-5.5

5
推荐指数
3
解决办法
1189
查看次数

为什么 Sequelize upsert 不能使用复合唯一键?

我在 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” …

sql postgresql node.js sequelize.js

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