当前位置: 首页 > 知识库问答 >
问题:

Laravel 5雄辩的多对多关系问题

公孙宗清
2023-03-14

我正在使用Laravel 5创建一个博客,但我对多对多(通过透视表)关系有一个奇怪的问题。我的DB设置如下:

文章表:
id|bigint|20|PK|不为空|自动增量
title|varchar|255|不为空
body|text|不为空
category_id|bigint|20|不为空
created_at|时间戳|不空
updated_at|时间戳|非空
已发布|布尔值|非空
deleted_at|时间戳|非空

标签表:
id|bigint|20|PK|不为空|自动增量
名称|varchar|255|不为空
created_at|时间戳|不为空
updated_at|时间戳|不为空

post_tag透视表:
id|bigint|20|PK|不空|自动增量
post_id|bigint|20|不空
tag_id|bigint|20|不空
created_at|时间戳|不空
updated_at|时间戳|不空

以下是从我的模型中提取的:
Post

public function tags(){
    return $this->belongsToMany('App\Tag');
}

标签

public function posts(){
    return $this->belongsToMany('App\Post');
}

如果我这样做,现在在视图上:

var_dump($post->tags->first()->name);

我返回了与post关联的正确标记,但是显然post可以有更多标记,因此我尝试在$post上为每个循环创建一个for循环-

var_dump($post->tags);

我收到了以下回复:

对象(照亮\数据库\雄辩\收藏)#199(1){["项目": protected]=

“[“类别识别码”]=

“[“类别识别码”]=

我已经强调了给我带来问题的部分,出于某种原因,它似乎有某种查询递归,我不明白为什么会这样。
有什么想法吗?

谢谢,
马特奥

共有2个答案

长孙章横
2023-03-14

也许你的autoload_classmap.php不是最新的。

此文件在每次自动加载转储时重新生成。如果在项目中的某个地方有一个新类,除非它包含在自动加载的类映射中,否则不会加载它

composer dump-autoload

这可能发生在你身上,可能是通过安装或更新包或其他东西自动发生的。

好提示:如果您在Laravel中遇到问题,请尝试运行composerdump autoload,这通常可以解决一些问题。

何安宜
2023-03-14

您将获得查询集合。您可以使用-

$post->tags->toArray();

 类似资料:
  • 我刚刚开始学习LaravelV3,我试图通过创建一个博客来了解eloquent的一对多关系。我的帖子与类别有多对一的关系(每个帖子都链接到一个类别)。 我有以下表格和以下字段: 帖子:id、标题、正文、创建日期、类别id 类别:id、名称 我有以下两种型号: 我想出了如何通过传递类别id来获得所有帖子: 我只是需要帮助,找出如何获得所有的职位,并得到他们的更正类别。因此,在视图中的一天结束时,我可

  • 我有帖子表和评论表。我想得到所有的帖子与它的评论和以下返回只是帖子有评论: 更新 例如 ID帖 1个职位1 2后2 id post\u id评论 1萨姆勒大学评论 Post::with('comments')只返回有注释的帖子,它只返回第一篇帖子,因为第二篇帖子没有注释,我想获取所有帖子(有注释或没有注释)

  • 我使用的是Laravel 5.4,其模型和表格结构如下: 一个用户可以有多个账户 一个帐号可以被多个用户共享 每个账户有多个持有量 因此,用户通过他们的许多帐户间接拥有许多资产。 我需要帮助在用户模型上定义一个称为“持有量”的关系,以获得适用于用户的所有持有量(基于他们所链接的账户)。 我尝试了很多不同的东西,在谷歌上花了很长时间。我可以接近BelongToMany和hasManyThrough,

  • 我有三种模式——博客、帖子、评论。博客有很多帖子,帖子有很多评论 当我写作时 它会给所有的博客发帖子和评论。但我将如何获得那些由管理员用户创建的博客,即评论表中的用户id。在哪里写入

  • 我有一个表事务与复合主键id,Nom,日期和一个表Cour与Nom作为主键和一个事务有关一个Cour。 我怎样才能得到一个有口才关系的特定交易的课程?

  • 因此,我在JeffreyWay的屏幕广播中了解到,我可以使用Eloquent从注入到另一个模型的模型中获取相关id。 我正在关注他关于Laravel 5.4的系列报道。 在这里,我有一个用户到帖子的一对多关系。 应用程序/帖子 在我的用户模型中,我有一个发布方法,其中注入了发布模型。发布方法用于创建进入数据库的发布条目。 应用/用户 然后,我在PostsController中有一个存储方法,它在我