【问题标题】:Common model_id for two Models - Laravel 5 - Eloquent两个模型的通用 model_id - Laravel 5 - Eloquent
【发布时间】:2019-06-02 13:12:04
【问题描述】:

我有一个问题,我正在寻找它的答案一段时间。 好吧,在我的 Laravel 项目中,我有一个模型 Disease,它与 RecipeUser 模型具有belongstoMany 关系。 我希望从数据库中获取与 当前登录用户 具有相同 disease_id 的所有 recipe 行。 有什么办法可以用 Eloquent 做到这一点? 谢谢!

【问题讨论】:

  • 我无法回答您的问题,但我可以表达对疾病和食谱在同一上下文中使用的担忧。我希望这不是餐厅。 =)

标签: php laravel laravel-5 eloquent


【解决方案1】:

这样的工作是否可行:

$user = Auth::user();
return Recipe::where('disease_id', $user->id)->get();

【讨论】:

  • 我正在寻找其数据透视表上的 disease_ids 等于用户的 disease_id 的食谱。
  • 你能发布你的模型以及你如何定义它们之间的关系吗?
【解决方案2】:

确保您的 User 模型定义了 diseases 关系:

public function diseases()
{
    return $this->hasMany(Disease::class);
}

您可以像这样获取当前用户和disease_id(编辑以使用用户模型上的疾病关系):

$user = Auth::user();
$disease_ids = $user->diseases()->pluck('id');

然后你可以像这样找到具有相同disease_id 的食谱:

return Recipe::whereIn('disease_id', $disease_ids)->get();

【讨论】:

  • disease_id 存储在数据透视表中,因为用户患有多种疾病。
猜你喜欢
  • 2015-03-12
  • 2016-01-20
  • 2017-09-13
  • 2017-09-02
  • 2016-08-17
  • 2019-10-04
  • 2016-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多