尝试使用eloquent从SQL数据库获取最大数量时出错

时间:2017-05-03 11:24:55

标签: php mysql laravel laravel-5

我有一个运行时使用username,password和user_id作为主键的数据库 并且我试图使用雄辩的方式从user_id列中获取最高数字。

这是我当前的错误:

  

SQLSTATE [42S22]:未找到列:1054未知列' users.id'在' where子句' (SQL:从users中选择{usersid = 2限制1)

这就是我的模型:

users.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;


use DB;
use Eloquent;

class users extends Eloquent
{
  public static function register()
  {
      $user_id = users::find(DB::table('users')->max('user_id'));


return $user_id;
  }

  }

2 个答案:

答案 0 :(得分:0)

通常,Laravel认为主键名是id。如果主键名称不是id,则必须声明主键名称。因此,请在您的用户类中添加:

protected $primaryKey = 'user_id';

以下是整个课程的外观:

class users extends Eloquent
{
    protected $primaryKey = 'user_id';
    public static function register()
    {
        $user_id = users::find(DB::table('users')->max('user_id'));
        return $user_id;
    }
}

答案 1 :(得分:0)

获得像这样的最高用户

$user = users::orderBy('user_id', 'desc')->first();