我有两个表:
`tasks {id, task_name, status_id}`
`statuses {id, status_name }`
一个任务一次只能有一个状态,例如挂起、活动、完成、中止等
这就是我到目前为止所拥有的。
class Task extends Eloquent
{
public function status
{
return $this->hasOne('Status', 'id');
}
}
当我尝试$task->status->status_name
时,我会得到"尝试获取非对象的属性"错误!
我的状态类看起来像这个
class Status extends Eloquent
{
protected $table = 'statuses';
}
你能解释一下我为什么会犯这个错误吗?
由于您在Task
表中获得了外键,因此您可以使用belongsTo
,Eloquent将在tasks
表中为您查找列status_id
。
public function status
{
return $this->belongsTo('Status');
}
了解更多信息http://laravel.com/docs/4.2/eloquent在一对一部分
对于错误Trying to get a property of non object
请确保表tasks
的status_id
列中有一个值。