Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔4雄辩的关系_Php_Laravel_Relationship - Fatal编程技术网

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美分。