Laravel 拉雷维尔/雄辩的关系问题

Laravel 拉雷维尔/雄辩的关系问题,laravel,eloquent,Laravel,Eloquent,我有一个名为“用户”的模型,包含以下信息: id name status_id id description 我有一个名为“状态”的模型,包含以下信息: id name status_id id description 当执行原始查询时,自然会将users.status\u id=status.id上的两个表连接起来,但是我想使用Laravel雄辩的ORM来获取用户的状态文本 例如,User::find(1)->status()->description 提供了许多不同的功能,例如有一个

我有一个名为“用户”的模型,包含以下信息:

id
name
status_id
id
description
我有一个名为“状态”的模型,包含以下信息:

id
name
status_id
id
description
当执行原始查询时,自然会将
users.status\u id=status.id
上的两个表连接起来,但是我想使用Laravel雄辩的ORM来获取用户的状态文本

例如,
User::find(1)->status()->description


提供了许多不同的功能,例如
有一个
有许多
属于
,但这些功能都不起作用。有人对我如何做这样的事情有什么想法吗?

我找到了答案。我可以通过运行流畅的查询而不是使用本机关系来完成上述操作:

 public function status() {

    return Status::where('id', '=', $this->status_id)->first();
 }

我找到了答案。我可以通过运行流畅的查询而不是使用本机关系来完成上述操作:

 public function status() {

    return Status::where('id', '=', $this->status_id)->first();
 }

按照数据库设置的方式,可以向状态模型添加has-one-user方法

在您的状态模型中:

public function user()
{
    return $this->has_one('User');
}
这将允许您按状态而不是按用户进行查询。要实现所需的功能,即
User::find(1)->status()->description
,您需要使数据库如下所示

Users

    id
    name

Status

    id
    description
    user_id
现在,您将在您的用户模型中实现以下内容

public function status()
{
    return $this->has_one('Status');
}
允许您使用:

User::find(1)->status()->description;
这将允许您在用户和状态之间建立一对一的关系。要实现一对多关系,即一个用户具有多个状态(可能不是最好的示例),您可以使用与上述相同的数据库设置,但在用户模型中,您可以使用
user()
函数返回:

$this->has_many('Status');

按照数据库设置的方式,可以向状态模型添加has-one-user方法

在您的状态模型中:

public function user()
{
    return $this->has_one('User');
}
这将允许您按状态而不是按用户进行查询。要实现所需的功能,即
User::find(1)->status()->description
,您需要使数据库如下所示

Users

    id
    name

Status

    id
    description
    user_id
现在,您将在您的用户模型中实现以下内容

public function status()
{
    return $this->has_one('Status');
}
允许您使用:

User::find(1)->status()->description;
这将允许您在用户和状态之间建立一对一的关系。要实现一对多关系,即一个用户具有多个状态(可能不是最好的示例),您可以使用与上述相同的数据库设置,但在用户模型中,您可以使用
user()
函数返回:

$this->has_many('Status');

谢谢-请投票给我一个深入的答案。不幸的是,像你建议的那样改变数据库结构对我来说不是正常的形式。事实证明,我所寻找的答案与我所问的问题并不完全一致,我找到了下面列出的答案。不用担心,Darren,我刚刚写下了Laravel希望您的数据库看起来如何,以便关系正常工作。:)谢谢-请投票给我一个深入的答案。不幸的是,像你建议的那样改变数据库结构对我来说不是正常的形式。事实证明,我所寻找的答案与我所问的问题并不完全一致,我找到了下面列出的答案。不用担心,Darren,我刚刚写下了Laravel希望您的数据库看起来如何,以便关系正常工作。:)“所有这些工作”都不是可接受的问题描述。“所有这些工作”都不是可接受的问题描述。