【问题标题】:Laravel get data based on foreign keyLaravel 根据外键获取数据
【发布时间】:2015-11-09 22:19:31
【问题描述】:

所以我有 2 个表,TABLE1 和 TABLE2。 它们通过 Eloquent 链接: TABLE1 有很多 TABLE2,而TABLE2 有一个 TABLE 1。 它们与外键链接如下: 在 TABLE2 table1_id -> 链接到 -> TABLE1 id。

如何检索整个表数据或表 2, + 将 table1_id 替换为 table1 的列(例如,按书名)?

对抽象感到抱歉,但这是我能解释它的最佳方式吗? :D

【问题讨论】:

    标签: php laravel foreign-keys laravel-5 eloquent


    【解决方案1】:

    您需要在模型中建立关系,例如,如果您有一个“类别”并且它有很多“产品”,您需要将此代码放入您的模型中

        public function products()
        {
            return $this->hasMany('App\Product', 'foreign_key_you_have');
        }
    

    当您需要在视图中检索与该类别关联的所有产品时,您需要调用模型的函数,例如

    @foreach($category->products as $cp) // with $category->products you call all products associated to your foreign_key
      <h1>{{$cp->price}}</h1>
    @endforeach
    

    【讨论】:

      【解决方案2】:

      最简单的方法是利用 Eloquent 的预加载,从 table2 中获取所有记录,并在 table1 中获取它们对应的记录。

      这样就可以了:

      $results = Table2::with('table1')->get();
      
      foreach ($results as $table2record) {
        echo $table2record->id; //access table2 data
        echo $table2record->table1->booktitle; //access table1 data
      }
      

      【讨论】:

        猜你喜欢
        • 2022-06-13
        • 2019-03-30
        • 2020-04-19
        • 1970-01-01
        • 2022-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多