Laravel 4 即时加载返回空值

Laravel 4 即时加载返回空值,laravel-4,Laravel 4,我有两种型号: class User extends Eloquent { public function questions() { return $this->hasMany('Question'); } } class Question extends Eloquent { public function users() { return $this->belongsTo('User'); } } 在

我有两种型号:

class User extends Eloquent
{
    public function questions()
    {
        return $this->hasMany('Question');
    }
}

class Question extends Eloquent {

    public function users()
    {
    return $this->belongsTo('User');
    }
}
在我的问题控制器中,我具有以下功能:

public function index()
    {
        $questions =  Question::with('users')->get();
        return View::make('questions.index')->with('questions', $questions);
    }
但是当访问此路由时,我得到以下错误:

'Trying to get property of non-object ...'
但是,如果我将外键添加到问题模型中,如下所示:

public function users()
    {
        return $this->belongsTo('User', 'user_id');
    }
然后一切正常

问题是,我认为如果外键没有遵循使用模型名后跟_id的惯例,那么只需添加外键作为第二个参数,我就是这么做的

我知道它现在可以正常工作,但我想知道为什么我必须添加外键作为第二个参数


提前谢谢。

我不确定,但可能它尝试使用模型的大写名称,
User\u id
而不是
User\u id
?您的数据库用户表列是“id”还是“User\u id”?