【问题标题】:retrieve data from table based on a foreignKey Laravel基于 foreignKey Laravel 从表中检索数据
【发布时间】:2019-09-08 14:27:26
【问题描述】:

所以我有 2 个表格、文章和子类别。它们通过 Eloquent 链接:articles 有很多 sub_categories,并且 sub_categories 属于文章。它们与外键链接如下:在“文章”categorie_id 中。

例如,如何检索类别为“DOG”的整个表格数据文章 很抱歉抽象,但这是我能解释它的最好方法吗? :D

文章模型

<?php
namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Articles extends Model
{
    use SoftDeletes;

    public function user() {
        return $this->belongsTo('App\User') ;
    }

    public function sous_categories() {
        return $this->belongsTo('App\SouCategories') ;
    }
}

子类别模型

<?php
namespace App;

use Illuminate\Database\Eloquent\Model;

class SouCategories extends Model
{
    public function categories() {
        return $this->belongsTo('App\Categories') ;
    }

    public function articles() {
        return $this->hasMany('App\Articles','cat_id') ;
    }
}

在我的控制器中,我试图根据 sub_category 和 foreach 子类别上的外键获取数据,我正在创建一个数组,如 mainslider 包含具有特定 sub_category 的文章

public function index()
{
    $infos = Infos::all();
    $categories = Categories::all();
    $articles=Articles::all();   
    $mainslider=Soucategories::with('articles')->get();
    foreach($mainslider as $record){
        dd($record->articles);
    }
    die();
    return view('frontEnd.homepage',compact('infos','categories','articles','mainslider'));
}

【问题讨论】:

  • 你能从你的模型中发布你的关系吗?以及你已经尝试过的代码?
  • 我已经更新了我的答案,如果您遇到任何错误,您可以尝试告诉我。

标签: php laravel eloquent eloquent-relationship


【解决方案1】:

根据您发布的代码,它应该类似于

Soucategories::where('title', 'DOG')->with('articles')->get();

似乎只有名称为“DOG”的 Soucategory,所以你可以做类似的事情

Soucategories::where('title', 'DOG')->first()->articles

【讨论】:

  • 我遇到了这个错误尝试获取非对象的属性“文章”
  • @saifeddinejebri 您的 Soucategories 模型中是否有值为“DOG”的名称字段,如果有,您能否发布记录,或查看var_dump(Soucategories::where('name', 'DOG')-&gt;get())
  • Soucategories::where('title','test')->with('articles')->get();给我空集合
  • @saifeddinejebri 字段名称是nametitle ?
  • 还有 Soucategories::where('name', 'DOG')->get() 给出空数组
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-23
  • 1970-01-01
相关资源
最近更新 更多