php - Laravel 查询在 id 列上返回 Null id

标签 php mysql laravel laravel-4 eloquent

好的,我编写了一些代码来从我的数据库中的某个左连接中检索数据,在检索到这些数据后,我使用每个数据中的 id 来填充模态。问题是它适用于一些已检索的数据。因为当我查看查询结果时,我注意到某些有效数据的 id 为空

 $someuser =  DB::table('users')
->join('sometable', 'sometable.user_id', '=','users.id')
->leftjoin('sometable', 'users.id', '=', 'skills.user_id')
->leftjoin('sometable', 'users.id', '=','schools.user_id')
->leftjoin('sometable', 'users.id', '=', 'languages.user_id')
->leftjoin('sometable','users.id', '=', 'memberships.user_id')
->leftjoin('sometable', 'users.id', '=', 'convictions.user_id')
->leftjoin('sometable', 'users.id', '=', 'work_experiences.user_id')
->select('users.*','sometable.name as sometablename','sometable.*')
->where('users.first_name', '<>', '')->whereNotNull('users.id')
->orderBy('sometable.updated_at', 'DESC')->groupby('users.first-name')->distinct()->paginate(100); 

由此,查询结果如下所示:

{"total":966,"per_page":100,"current_page":1,"last_page":10,"from":1,"to":100,"data":[{"id":null, etc

简单的说为什么我的id为null

我认为它没有向我显示超过 1900 的 ID,所以如果用户超过 1900,它会向我显示 null

最佳答案

您正在从多个表中选择 *。由于您还处于加入状态,因此很可能没有任何可加入的内容,因此您的数据库将这些列返回为空。具体选择您需要的 ID 并将其命名为不会被另一列覆盖的内容。

关于php - Laravel 查询在 id 列上返回 Null id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34798346/

相关文章:

php - 像 PHP 一样在 Perl 中启用错误消息

php - 使用PHP阻止用户下载代码,但代码是cpu密集型的

php - 是否有一个 namespace 感知替代 PHP 的 class_exists() ?

PHP - 在新窗口中打开链接?

php - 自动隐藏完整的选择并将所有数据插入其他表

mysql - 如何从不在ID范围内的mysql中删除数据

php - 拉维尔 : SQLSTATE[42S22]: Column not found: 1054 Unknown column

php - 无法添加外键约束 - Laravel Entrust

PHP Stripslash 不起作用

javascript - 从 Laravel View 将属性传递到 Treeselect vue 组件