如何在db-select内部执行自动增量? (laravel)

时间:2019-03-05 03:39:42

标签: laravel laravel-5.7

我在下面尝试了此方法,但是它不起作用。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tr code="01">
    <td><input type="text" name="A" /></td>
  </tr>
  <tr code="02">
    <td><input type="text" name="B" /></td>
  </tr>
  <tr code="03">
    <td><input type="text" name="C" /></td>
  </tr>
  <tr code="01">
    <td><input type="text" name="D" /> </td>
  </tr>
  <tr code="01">
    <td><input type="text" name="E" /></td>
  </tr>
</table>

我只希望下面的这些输出

$row = 0;
$record = DB::table('users')
  ->select(
    DB::raw("{{ $row++ }} AS no"),
    'users.name AS name'
  )
  ->get();

曾经寻找正确的语法,但没有结束。有人知道该怎么做。感谢在广告中。


[问题已解决]我在下面的“标记答案”旁边找到了另一个解决方案。

这是我的代码:

|no|  Name   |
|1 | sample1 |
|2 | sample2 |
|3 | sample3 |

2 个答案:

答案 0 :(得分:1)

我认为在这种情况下,您可以在PHP端简单地添加“ no”:

$record = DB::table('users')
    ->select('users.name AS name')
    ->get()
    ->each(function ($row, $index) {
        $row->no = $index + 1;
    })

答案 1 :(得分:0)

我想你可以做到的。

$record = DB::table('users')
       ->select(DB::raw('count(name) as No, name'))
       ->groupBy('name')
       ->orderBy('name','DESC')
       ->get();

首先,您可以使用count(name)计算所有用户 然后您可以按降序打印。