使用laravel eager loading选择特定列不起作用

时间:2017-12-10 06:46:12

标签: php sql laravel eloquent

当我尝试返回特定列时,我真的没有理解为什么这种急切加载无法正常工作。 这段代码完美无缺

$user=User::where('userName', $userName)
        ->with('points')
        ->with('examstaken')
        ->with('question')
        /*->with(array('points'=>function($query){
                $query->select('id','points');
         }))*/
         ->get();

此代码没有麦芽汁

$user=User::where('userName', $userName)
        /*->with('points')*/
        ->with('examstaken')
        ->with('question')
        ->with(array('points'=>function($query){
                $query->select('id','points');
         }))
         ->get();

不起作用意味着,'points'不返回任何值,而第一个值正确返回值。

知道它有什么问题吗?

以下是我的用户模型中的关系

  public function points()
{
    return $this->hasMany('App\Points','user_id');
}

谢谢..

1 个答案:

答案 0 :(得分:3)

好的解决了。看来我必须传递user_id,外键然后它们才会起作用。将其作为其他人的答案发布可能会得到帮助:)

$user=User::where('userName', $userName)
        /*->with('points')*/
        ->with('examstaken')
        ->with('question')
        ->with(array('points'=>function($query){
                $query->select('user_id','points');
         }))
         ->get();