小编Len*_*rmi的帖子

在Yii2中执行原始SQL查询?

我将PHP网站迁移到Yii2框架时编写了以下查询.我想将它们添加到我的控制器中,以显示赢得的前10个投注.我尝试过很多Yii2数据库类,但我无法让它工作.

我的表是:

用户:

id | user_name | user_status | ...other columns...
Run Code Online (Sandbox Code Playgroud)

投注:

id | user_id | date_time |...other columns...| balance_return
Run Code Online (Sandbox Code Playgroud)

我希望在Yii2中获得的查询是:

$query_all = $dbh->query("
    SELECT SUM(bets.balance_return) AS total_win
         , bets.user_id
         , users.user_name
         , users.user_status
      FROM bets INNER JOIN users ON bets.user_id = users.id
     WHERE users.user_status = 'verified'
       AND bets.date_time > " . $start_date . "
  GROUP BY bets.user_id
  ORDER BY total_win DESC
");
Run Code Online (Sandbox Code Playgroud)

变量start_date是我计算的6个月的时间段.time()另请注意,balance_return用户获得的每次获胜都是如此,其总和决定了排名.

第二个查询是:

$qwi = $dbh->query("
    SELECT SUM(bets.balance_return) AS total_win
         , bets.user_id
         , users.user_name …
Run Code Online (Sandbox Code Playgroud)

php mysql yii2 yii2-advanced-app

32
推荐指数
1
解决办法
7万
查看次数

为什么Yii2休息控制器以XML格式给出响应?

目前我在我的api模块上使用以下初始化代码

public function init()
{
    parent::init();
    Yii::$app->response->format = Response::FORMAT_JSON;
}
Run Code Online (Sandbox Code Playgroud)

我的api在以下示例中以XML格式返回响应.

public function actionTest()
{
    $items = ['one', 'two', 'three' => ['a', 'b', 'c']];
    return $items;
}
Run Code Online (Sandbox Code Playgroud)

这是回应:

<response>
  <item>one</item>
  <item>two</item>
   <three>
    <item>a</item>
    <item>b</item>
    <item>c</item>
   </three>
</response>
Run Code Online (Sandbox Code Playgroud)

我能让它工作的唯一方法是将这一行添加到每个控制器行为中.我已经阅读了文档,其中说我可以在模块类中进行此操作,因此我不需要在每个控制器中执行此操作.我不知道为什么它会提供XML.,万一唯一的方法是将它添加到我的行为中,我是否必须编写代码来处理名称,代码,状态,类型,以前的代码或者Yii提供yii\rest\Controller和yii\rest\ActiveController哪个自动处理这个.很明显,当出现错误时,它们会自动输出.

{"name":"Not Found"
 "message":"Page not found.",
 "code":0,
 "status":404
 "type":"yii\\web\\NotFoundHttpException"
 "previous":{"name":"Invalid Route","message":"Unable to resolve the request: api/home/",
 "code":0,"type":"yii\\base\\InvalidRouteException"
 }
}
Run Code Online (Sandbox Code Playgroud)

php rest yii2

7
推荐指数
2
解决办法
8361
查看次数

标签 统计

php ×2

yii2 ×2

mysql ×1

rest ×1

yii2-advanced-app ×1