【发布时间】:2015-06-01 13:11:38
【问题描述】:
我有 2 张桌子:
`tasks {id, task_name, status_id}`
`statuses {id, status_name }`
一个任务一次只能有一个状态,例如Pending、Active、Completed、Aborted等
这是我目前所拥有的。
class Task extends Eloquent
{
public function status
{
return $this->hasOne('Status', 'id');
}
}
当我尝试$task->status->status_name 时,出现“尝试获取非对象的属性”错误!
我的 Status 类看起来像这样
class Status extends Eloquent
{
protected $table = 'statuses';
}
你能解释我为什么会出现这个错误吗?
【问题讨论】:
-
您有太多未连接的 sn-ps 代码无法正确回答此问题,但正如错误所述,您访问的属性不正确。例如,经常用 eloquent 将事物声明为静态,因此您需要使用 :: 而不是 ->
-
“您有太多未连接的 sn-ps 代码无法正确回答此问题”是什么意思?另外,我认为更改为静态函数不会改变任何事情!
-
更好的代码格式和改进最终问题
-
例如,虽然很明显 $task 代表您的 eloquent 模型,但模型实例化(或未实例化)的方式会影响您访问它的方式。无论如何,我也不是 laravel 专家,但这正是为什么你填补一些空白会帮助我们帮助你:) 只是我的 2 美分。
标签: php laravel relationship