如何使用口才从另一个表中检索列

时间:2019-02-20 21:10:54

标签: php laravel eloquent

我有两个桌子

typings.d.ts

product.category是链接到category.id的外键。我正在构建一个基本的CRUD,我想在产品表中显示所有产品以及它们所属类别的名称,而不是其类别ID。为此,在搜索laravel文档时,我遇到了查询生成器,并实现了我的目标。

product: id|category ...
category: id|name ...

在我的产品和类别模型下,我创建了适当的关系。

product.php

public function index()
{
    $products = \DB::table('products')
        ->join('categories', 'products.category', '=', 'categories.id')
        ->select('*')
        ->get();

    return view('product' ,compact('products'));
}

category.php

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

我一直在了解Eloquent的强大功能,并且想知道如何用口才实现类似的结果,以及是否为此类操作设计了口才,或者查询生成器是否是正确的方法。 每个在线教程似乎都只使用发布和评论场景,以使所有评论都属于某个帖子。

1 个答案:

答案 0 :(得分:1)

您可以使用此代码

public function index()
{
    $products = Product::with('category')->get();

    return view('product' ,compact('products'));
}

刀片式服务器

@foreach($products as $product)
    {{$product->name}}
    {{$product->category->name ?? ''}}
    //or
    @if ($product->category)
        $product->category->name
    @endif

@endforeach

如果在项目表中,外键不等于category_id。就您而言

public function category()
{
    return $this->belongsTo('App\Category', 'category');
}