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”?