拉勒维尔 - 多重关系

我刚刚开始学习拉拉威尔 , 我正在用情感关系来支撑我 ! 我有两张桌子 , 都是多层次的 :

帕吉纳斯 -

  • Idpagina PK 步枪
  • 姓名
  • 父母

例如 :

  idPagina  name   parent 
  1          A      Null
  2          B       1

分类 -

  • PK 步枪
  • 姓名
  • 父母
  • IdPagina - FK

    例如 :

{ 2 }

嗯...... 所以我想得到这样的东西 :

  • a - 父母

  • B - (A) 子女

  • C - (B) 子女

  • D - (C) 子女

我有帕格尼丝模型 :

  class Paginas extends Eloquent{    

     public function children() {         
         return $this->hasMany('app\paginas', 'parent', 'idPagina');
         } 

          public static function tree() {
         return static::with(implode('.', array_fill(1, 10, 'children')))->where('parent', '=', null)->get();

       }}

和类别模型 :

class Categoria extends Eloquent{




 public function children() {
 return $this->hasMany('app\categoria', 'parent', 'idCategoria');

    }

     public static function tree() {

 return static::with(implode('.', array_fill(1, 10, 'children')))->where('parent', '=', null)->get();

 }
}

现在我只想加入两张桌子 !

编辑

我刚加了斯蒂芬·刘易斯建议的密码 ! 但是现在我不能得到多层次的我想 , 这是刀片代码

@foreach($paginas as $pagina)
  <h1>{{$pagina -> nomePag}}</h1>
   @foreach ($pagina -> children as $child)
     <h3>{{$child -> nomePag}}</h3>
     @foreach($pagina -> categorias as $categoria)
         {{$categoria -> nomeCat}}
     @endforeach
   @endforeach
@endforeach

好吧 , 我就是拿不到和那些花了很多钱的孩子


EN From: Laravel - Multiple relationships Eloquent

12 Comments

  1. 将此添加到 Categoria 类 :

    public function pagina()
    {
        return $this->belongsTo('Pagina', 'idPagina');
    }
    

    您还可以通过将此添加到 Pagina 类来指定关系的另一面 :

    public function categorias()
    {
        return $this->hasMany('Categoria', 'idPagina');
    }
    

    关于如何处理 E枇杷关系的更多信息 , 请参阅文档

    1. 多谢你的密码 ! 希望你现在能帮我 , 我编辑了这个问题
    1. 好吧 , 先别管嵌套循环。 不同的关系是独立运作的吗 ? $pagina->categorias 返回类别集合 , $categoria->pagina 返回单个页 , 等等吗 ?
    1. 是的 , 除了嵌套循环 , 所有的事情都很好...... 问题是我没有链接到第三循环和第二循环......
    1. 这个链接应该是你在第三个循环中使用 @foreach $child->categorias ( 根据我所知道的 ) , 但是你说那行不通。 重复是否返回错误?
    1. 不 , 雄辩不会返回任何错误 , 我使用了鞋面所以我看不到错误...... 我只是在想树 , 难道我不需要调用类别吗 ?
    1. 我很困惑 , 马库斯 , 你没有在代码中使用 tree 方法。
    1. 是的 , 我在路径文件中这么说 : $paginas = pagina:::
    1. 对 , 你没提过。 将方法更改为 return static::with('children')->has('parent', '<', 1)->get();
    1. 不能用"有",所以我换了"哪里",只是得到了相同的输出

More articles:

  • 拉勒维尔访问归属者模型有很多关系
  • 试图获取拉勒维尔关系中的非对象属性
  • 建立拉拉威尔关系模型
  • 拉勒维尔的 ID 命名惯例
  • 拉拉维亚雄辩的关系 3 个模型
  • 3 个不同表格之间的拉拉维关系
  • 拉勒维尔 : 如何显示可用时间段列表
  • 说明如何在 Laravel 的 Evient ORM 中建立一对多关系
  • Laravel 次级关系
  • 模型关系和路径得到模型 id
  • 如何检索 laravel4 中多态关系的多个所有者
  • 相同的前两次关键时间指一个模型
  • 如何将数据插入 mysql - Laravel 的两个表中
  • Larav案中的用户跟踪 / 订阅关系模型
  • 在 Laravel App 检索 10, 000 多行
  • Laravel / E枇杷查询出错
  • 拉勒维尔工厂无法挽救关系
  • 拉拉瓦尔使用了很多对很多关系
  • 相关用户在同一表中的 Laravel 查询
  • 合并有相同列和表的 2 个查询
  • 三种模式之间需要建立关系
  • 拉拉威尔 5 , 只为有说服力的模特获得关系
  • 多个字段的 Laravel SUM 用原始查询返回 null
  • Laravel 跟踪通知
  • Laravel 在相关表格中进行多次搜索
  • MYSQL IN 的 Laravel E枇杷
  • 我怎么能用它的形态和拉勒维尔的关系?
  • 在 Laravel 中添加类型字符串的外键时出错
  • SQL 查询检索所有记录以及外键与 Laravel 命令的关系
  • 如何将变量传递给拉勒维尔的工厂?