我对 mysql 的了解非常基础,现在我面临一个“复杂”(对我来说)的查询,我被困在其中,所以如果有人能给我一些启示,请提前感谢您。
我有三张表:
订单
id | name | comments | ...
Run Code Online (Sandbox Code Playgroud)
订单行
id | name | sDate | eDate | comments | ...
Run Code Online (Sandbox Code Playgroud)
订单行统计信息
id | lineID | date | status | ...
Run Code Online (Sandbox Code Playgroud)
每天 OrderLinesStats 都会通过 cron 作业更新,并获取包含实际日期、状态和其他字段的新记录,因此最高 id 是实际数据。
我试图在 yii2 中获取最后一个 stats 行,如下所示:
在 OrdersLines 模型中:
public function getLastOrdersLinesStats()
{
return $this->hasMany(OrdersLinesStats::className(), ['lineID' => 'id'])
->orderBy(['id'=>SORT_DESC])
->groupBy('lineID');
}
Run Code Online (Sandbox Code Playgroud)
订单型号:
public function getOrdersLines()
{
return $this
->hasMany(OrdersLines::className(), ['orderID' => 'id'])
->orderBy(['typeID' => SORT_ASC, 'name' => SORT_ASC])
->with(['lastOrdersLinesStats']);
} …Run Code Online (Sandbox Code Playgroud) 更新记录后,如何将用户重定向到上一页?这是典型的情况:
我已经尝试在更新后在我的控制器中使用下面
return $this->redirect('index',302); (this is not what I need)
return $this->redirect(Yii::$app->request->referrer); (this gets user back to update view and not to index view with filters)
return $this->goBack(); (this gets user to homepage)
Run Code Online (Sandbox Code Playgroud)
谢谢!
我创建了 api 结构/配置并且它可以工作,但现在我需要使用承载身份验证对其进行设置,并且我发送到 api 的每个 GET 请求(使用身份验证承载 XXXXXXXXXXXX)都会给我一个 401 错误:
{"name":"Unauthorized","message":"Your request was made with invalid credentials.","code":0,"status":401,"type":"yii\\web\\UnauthorizedHttpException"}
Run Code Online (Sandbox Code Playgroud)
对于这个问题的长度以及所有片段感到抱歉,但我尝试了一些更改,阅读了我在这里找到的所有内容,但没有成功,我开始对此失去控制。我可能会错过什么?
我的应用程序使用具有下一个文件夹结构的高级模板(与我读过的所有方法相同):
> -api
> --config
> --main.php
> --params.php
> --modules
> --v1
> --controllers
> --OrdersController.php
> --models
> --Orders.php
> --Module.php
> --web
> --index.php
> -backend
> -common
> -frontend...
Run Code Online (Sandbox Code Playgroud)
api/config/main.php
<?php
$params = array_merge(
require(__DIR__ . '/../../common/config/params.php'),
require(__DIR__ . '/../../common/config/params-local.php'),
require(__DIR__ . '/params.php')
//require(__DIR__ . '/params-local.php')
);
return [
'id' => 'app-api',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'], …Run Code Online (Sandbox Code Playgroud)