你如何在laravel eloquent中查询孩子和父母

安迪

我想弄清楚如何查询以获取由当前用户或当前用户父级创建的结果。

我有两张桌子usersworkouts. 两个表都有一个created_by列,用于存储创建所述用户或锻炼记录的人的用户 ID。

CREATE TABLE `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `created_by` int(10) unsigned DEFAULT NULL,
  `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`),
  KEY `users_created_by_foreign` (`created_by`),
  CONSTRAINT `users_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`)
);

CREATE TABLE `workouts` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `created_by` int(10) unsigned NOT NULL,
  `description` text COLLATE utf8_unicode_ci,
  `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`),
  KEY `workouts_created_by_foreign` (`created_by`),
  CONSTRAINT `workouts_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`)
);

在我的用户模型中,我有一个函数可以返回用户创建的所有锻炼。

public function createdWorkouts(): HasMany
{
    return $this->hasMany(Workout::class, 'created_by');
}

我想弄清楚的是,我如何查询以使用 ID 查找锻炼,但仅适用于当前用户创建的锻炼或当前用户创建的锻炼。下面是我当前的路线逻辑,它只返回当前用户创建的锻炼。

$user = User::find(1); // This would come from the JWT
if (!$workout = $user->createdWorkouts()->find($args[‘workout_id’])) {
    return $response->withJson([], 404);
}
乔治·汉森

对于这个例子,我可能不会使用雄辩的关系,因为它可能是用户id或他们的created_by价值。

相反,我会将您的用户模型上的方法更改为:

public function createdWorkouts()
{
    return Workout::where('created_by', $this->id)->orWhere('created_by', $this->created_by)->get();
}

然后你可以这样做$user->createdWorkouts(),这将返回由用户创建或由创建用户的用户创建的所有锻炼的集合。

由于它是一个集合,因此您可以访问集合上的所有其他方法,例如find

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

在父母和孩子的表Laravel中插入行

来自分类Dev

如何查询laravel中的深层关系并按孩子筛选父母?

来自分类Dev

如何在自查表中归还孩子的父母?

来自分类Dev

如何在Elasticsearch中按孩子数对父母排序

来自分类Dev

如何在父母和孩子之间共享过滤器

来自分类Dev

如何在Polymer中反映从孩子到父母的变化

来自分类Dev

如何在Laravel Eloquent中编写嵌套的单个查询

来自分类Dev

如何在Laravel Eloquent中“过滤” ManyToMany的孩子

来自分类Dev

Laravel,由父母和孩子获得结果

来自分类Dev

在父母和孩子的表Laravel中插入行

来自分类Dev

我如何使用班级的父母和孩子?

来自分类Dev

如何在O(1)查询中同时过滤父母和孩子?

来自分类Dev

父母和孩子的订单查询

来自分类Dev

如何在MySQL中获得父母最受关注的孩子

来自分类Dev

你如何在方案中求和

来自分类Dev

如何在自查表中归还孩子的父母?

来自分类Dev

如何从位置获取父母和孩子的ID

来自分类Dev

如何在父母和孩子之间共享过滤器

来自分类Dev

如何在JPA / Hibernate的孩子的ID中引用父母的ID?

来自分类Dev

如何在Visio中让孩子建立父母关系?

来自分类Dev

如何在 Laravel 5 中编写动态数量的 Eloquent 查询?

来自分类Dev

如何在 Laravel eloquent 中编写子查询

来自分类Dev

如何在 UWP 中为孩子提供父母的身高

来自分类Dev

你如何在java中安排?

来自分类Dev

你如何在jooq中创建多列子查询

来自分类Dev

如何在一个查询中让所有孩子成为父母

来自分类Dev

你如何在laravel eloquent中查询孩子和父母

来自分类Dev

你如何在 React 中渲染 HOC?

来自分类Dev

如何在 Laravel 中的一个查询语句中加入 Eloquent 和 Query Builder

Related 相关文章

热门标签

归档