我有一张库存变动表,其中显示了产品的历史记录(接收、移动位置等)
\n\n我有两个计算的查询(通过总计):
\n\n这两个查询都返回相同模型的集合。它们的结果数量始终相同,并且 Product_id 也始终相同。唯一不同的部分是接收/实时数量,我想以某种方式将各个记录合并到一个新集合中。IE
\n\n查询 1 中的单个记录:
\n\n0 => StockMovement {#1602 \xe2\x96\xbc\n #original: array:2 [\xe2\x96\xbc\n "live_qty" => "8"\n "product_id" => "2606598e-4150-461a-9e91-10d67cce8daa"\n ]\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n查询 2 中的单个记录;
\n\n0 => StockMovement {#1602 \xe2\x96\xbc\n #original: array:2 [\xe2\x96\xbc\n "received_qty" => "15"\n "product_id" => "2606598e-4150-461a-9e91-10d67cce8daa"\n ]\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n我试图最终得到一个合并结果,如下所示:
\n\n0 => StockMovement {#1602 \xe2\x96\xbc\n #original: array:3 [\xe2\x96\xbc\n "received_qty" => "15"\n "live_qty" => "8"\n "product_id" => "2606598e-4150-461a-9e91-10d67cce8daa"\n ]\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n我想以一种不将 Product 对象转换为数组的方式来执行此操作,因为我需要嵌入其中的关系。
\n\n目前,我对此进行了如下破解: …
我已经使用“AND”默认运算符设置了我的查询字符串搜索。我的查询如下:
{
"query": {
"query_string" : {
"query" : "Adam KT2 7AJ",
"default_operator" : "AND"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望这能提供与下面相同的结果......但事实并非如此。
{
"query": {
"query_string" : {
"query" : "Adam AND KT2 AND 7AJ",
"default_operator" : "OR"
}
}
}
Run Code Online (Sandbox Code Playgroud)
虽然我看到 default_operator 对我的搜索结果产生了影响,但它并没有像我希望的那样工作。
例如:
查询 1:
Adam AND KT2 AND 7AJ
, default_operator: or
查询2:
Adam KT2 7AJ
, default_operator: and
and
default_operator 在查询中产生与 AND 不同的结果)查询3:
KT2 7AJ
, default_operator: and
任何人都可以帮助在 Horizon.php 中进行正确的配置,以使单个主管运行多个队列吗?我努力了:
'supervisor-1' => [
'connection' => 'redis',
'queue' => ['default', 'queue2'],
'balance' => 'simple',
'processes' => 10,
'tries' => 3,
],
Run Code Online (Sandbox Code Playgroud)
也:
'supervisor-1' => [
'connection' => 'redis',
'queue' => 'default, queue2',
'balance' => 'simple',
'processes' => 10,
'tries' => 3,
],
Run Code Online (Sandbox Code Playgroud)
第二个队列在地平线中正确显示,我可以向他们发送作业,但它们只是没有得到处理。
我在 Forge 上进行配置,并使用 Redis 和以下 queue.php 配置来设置我的队列:
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default', // Default Queue
'retry_after' => 90,
'block_for' => null,
],
Run Code Online (Sandbox Code Playgroud) Horizon 运行良好,但直到最近,部署后,主管和队列工作人员不会再次启动,Horizon GUI 显示“非活动”
为了让它们再次运行,我可以:
/etc/init.d/supervisor restart
我的部署脚本包含php artisan horizon:terminate
在其中。我还尝试过重置/清除及其组合。
当我在具有非活动地平线的命令中运行终止时,它似乎什么也没做。当我在 Horizon Active 下运行相同的命令时,它会将其关闭,但守护进程不会重新启动 Supervisor。
守护进程在整个过程中运行没有任何错误。
应该终止并启动服务还是守护进程本身?
我的应用程序需要从外部 API 收集数据。
API 需要进行身份验证调用以在每次调用时检索令牌。这在 72 小时内有效,但目前我每次都打这个电话。
有什么方法可以在不将令牌保存到数据库的情况下减少所需的调用次数?
我看过有关为 API 创建服务提供程序的教程。这对我的问题有帮助吗?如果一个类只是在单个模型/控制器中使用并且几乎没有依赖关系,是否需要创建服务提供者?
任何人都可以就在 Larval 5 中将 REST api 布局到外部服务的最佳实践提供一些建议吗?
我目前在定时循环上使用一个函数来检查用户是否下线:
created() {
setInterval(() => {
this.checkOnline();
}, 30000);
}
Run Code Online (Sandbox Code Playgroud)
方法:
checkOnline(){
this.onLine = navigator.onLine ? true : false;
}
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以在不使用计时器的情况下检测到这一点?
其次...
我试图显示1秒的警报来告诉用户他们已重新联机。当this.onLine为true时,div应该被隐藏。当它为false时,它也应该被隐藏,但是当它从false变为true时,我想显示div大约一秒钟,然后再次将其隐藏。我已经尝试过使用settimeout并使用观察程序,但是均未达到预期的效果。
编辑:
因此,让我到达的一种方法是:
data() {
return {
onLine: navigator.onLine ? true : false,
}
}
Run Code Online (Sandbox Code Playgroud)
然后观察者显示返回的在线消息
watch: {
onLine: function (val) {
if(this.onLine === true){
this.showBackOnline = true;
setTimeout(()=>{ this.showBackOnline = false; }, 1000);
}
},
},
Run Code Online (Sandbox Code Playgroud)
除了使用专用的通知插件之外,还有没有比观察者更好的方法来实现此目的?
我知道这是一个菜鸟错误,但我可以问一下吗?
为什么
findOrFail()->get();
Run Code Online (Sandbox Code Playgroud)
或者
findOrFail()->first();
Run Code Online (Sandbox Code Playgroud)
返回整个集合,而不是仅仅失败?我知道的正确语法是:
findOrFail();
Run Code Online (Sandbox Code Playgroud)
然而最后一个意外的 ->get() 给我带来了一场噩梦!
我收到此错误:
SQLSTATE[22007]: Invalid datetime format: 1292 Truncated incorrect DOUBLE value: '808498e7-a393-42f1-ab23-6ee89eb7040a'
Run Code Online (Sandbox Code Playgroud)
尝试通过关系删除记录时,使用:
$delivery->stockMovements()->delete();
Run Code Online (Sandbox Code Playgroud)
原始查询显示为:
delete from `stock_movements` where `stock_movements`.`entity_id` = 10000005 and `stock_movements`.`entity_id` is not null and `stock_movements`.`company_id` = 8b11050c-612c-4922-8b34-d04d579e02a9
Run Code Online (Sandbox Code Playgroud)
我已经搜索并搜索过但找不到任何特定于此的东西,除了它可能与转换错误有关。也许与UUID有关?
迁移如下:
Schema::create('deliveries', function (Blueprint $table) {
$table->increments('id');
$table->uuid('company_id');
$table->string('delivery_type');
$table->string('supplier_name');
$table->string('supplier_ref')->nullable();
$table->string('merchant_ref')->nullable();
$table->string('carrier_name')->nullable();
$table->string('status');
$table->date('expected_delivery');
$table->dateTime('completed_at')->nullable();
$table->timestamps();
});
Schema::create('stock_movements', function (Blueprint $table) {
$table->increments('id');
$table->uuid('company_id');
$table->uuid('product_id');
$table->string('entity_type'); //can be order / delivery
$table->string('entity_id'); //can be UUID / String / Integer
$table->string('location_id')->nullable(); // can be warehouse_location / shipment_package / delivery_container …
Run Code Online (Sandbox Code Playgroud) 根据谷歌文档(https://support.google.com/docs/answer/58515?hl=en),当前刷新/重新计算时间如下;
要更改某些Google表格功能更新的频率:
打开电子表格.单击文件>电子表格设置.在"重新计算"下,从下拉菜单中选择一个设置.单击保存设置.注意:外部数据函数按以下时间间隔重新计算:
ImportRange:30分钟ImportHtml,ImportFeed,ImportData,ImportXml:1小时GoogleFinance:2分钟
我们有什么方法可以加快速度吗?例如,删除单元格然后替换它将强制刷新数据.也许这可以通过脚本来完成.甚至可以单独使用脚本从另一个工作表中提取数据吗?
有没有人对如何做到这一点有任何想法?理想情况下,我希望每5分钟刷新一次.
非常感谢