Php 拉威尔4雄辩的关系
我有两张桌子:Php 拉威尔4雄辩的关系,php,laravel,relationship,Php,Laravel,Relationship,我有两张桌子: `tasks {id, task_name, status_id}` `statuses {id, status_name }` 一个任务一次只能有一个状态,如挂起、活动、完成、中止等 这就是我目前所拥有的 class Task extends Eloquent { public function status { return $this->hasOne('Status', 'id'); } } 当我尝试$task->statu
`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\u name
时,出现“尝试获取非对象属性”错误
我的状态类看起来像这样
class Status extends Eloquent
{
protected $table = 'statuses';
}
你能解释一下我为什么会出现这个错误吗?既然你在
任务
表中得到了外键,你可以使用belongsTo
,Eloquent会在任务
表中为你查找列状态id
public function status
{
return $this->belongsTo('Status');
}
有关详细信息,请参见一对一部分
对于尝试获取非对象属性的错误
请确保表
tasks
上的列status\u id
中有一个值记录在案。您有太多未连接的代码片段,无法正确回答此问题,但正如错误所述,您访问的属性不正确。例如,通常情况下,使用elount将事物声明为静态,因此您需要使用::而不是->您所说的“您有太多未连接的代码片段来正确回答此问题”是什么意思?另外,我不认为更改为静态函数会改变任何事情!更好的代码格式和改进最终问题例如,虽然$task显然代表了您雄辩的模型,但模型实例化(或不实例化)的方式会对您访问它的方式产生影响。无论如何,我也不是拉威尔专家,但这正是为什么你填补一些空白可以帮助我们帮助你:)就我的2美分。