php - 将两个模型合并为一个数据库调用 - laravel

标签 php mysql laravel eloquent

我有 2 个模型,我通过所有调用它们:

$blocks = Block::all();
$cats = BlockCategory::all();

一个 block 有一个与之关联的类别,我想关联数据,以便我可以显示具有特定 block 的所有类别。我希望我能正确解释这一点。

所以我可以调用:

@foreach($cats as $cats)
    {{$cats->title}}
    @foreach($cats->blocks as $blocks)
         {{$block->title}}
    @endforeach
@endforeach

任何想法如何合并数据?如果有帮助,我基本上是在构建一个菜单。

最佳答案

您需要定义 block 和 block 类别之间的关系。确保您的数据库表具有外键关系。

将以下代码添加到您的 block 类别模型

public function blocks()
{
    return $this->hasMany('App\Block');
}

确保您的 block 模型位于 app/ 目录中。

现在,只需在 Controller 中检索类别,

$categories = BlockCategory::all();

然后你可以像这样显示数据:

@foreach($categories as $category)
    {{$category->title}}
    @foreach($category->blocks as $block)
        {{$block->title}}
    @endforeach
@endforeach

关于php - 将两个模型合并为一个数据库调用 - laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54592711/

相关文章:

Php正则表达式在字符串中的第一个全大写字母单词后插入字符

php - Facebook 60 天后更新用户 token

mysql - 有没有更清晰的方法来处理不在聚合函数或 GROUP BY 子句中的字段?

java - 无法使用Java连接Mysql数据库

mysql - 有没有办法限制 Mysql 表的索引以便整体性能不受影响?

php - MYSQL 3个表排序

apache - Laravel 向服务器发送 10 次重定向?

php - 实例化目录中的所有类

laravel 资源为每个项目问题传递多个参数

zend-framework - 在mysql查询中使用php DateTime对象