Laravel 什么时候使用belongsTo,什么时候有很多?

Laravel 什么时候使用belongsTo,什么时候有很多?,laravel,laravel-5.2,Laravel,Laravel 5.2,如果我不对,请纠正我 有表产品和类别 每种产品都有自己的类别。所以,它可能不止一个 所以,不,我需要按指定类别选择所有产品 我应该在模型中使用什么样的关系:属于,或者有许多? 这是重要的顺序吗?因为产品有多个类别,而类别可以有多个产品,这被称为 如果我们转到,您将看到您想要使用belongToMany()。这意味着,如果您希望能够从类别检索所有产品,您可以这样做(无耻地从Laravel的文档中复制): 由于产品有多个类别,而类别可以有多个产品,因此这称为一个 如果我们转到,您将看到您想要使用be

如果我不对,请纠正我

有表
产品
类别

每种产品都有自己的类别。所以,它可能不止一个

所以,不,我需要按指定类别选择所有产品

我应该在模型中使用什么样的关系:
属于
,或者
有许多

这是重要的顺序吗?

因为
产品
有多个
类别
,而
类别
可以有多个
产品
,这被称为

如果我们转到,您将看到您想要使用
belongToMany()
。这意味着,如果您希望能够从
类别
检索所有
产品
,您可以这样做(无耻地从Laravel的文档中复制):


由于
产品
有多个
类别
,而
类别
可以有多个
产品
,因此这称为一个

如果我们转到,您将看到您想要使用
belongToMany()
。这意味着,如果您希望能够从
类别
检索所有
产品
,您可以这样做(无耻地从Laravel的文档中复制):


很抱歉我的困惑…但是,一个产品可以有多个类别(或只有一个)?产品有多个类别我很抱歉我的困惑…但是,一个产品可以有多个类别(或只有一个)?产品有多个类别所以,我按类别获得所有产品,可能是方法
products()
应该在
产品模型中
?在
产品
模型中,我会有一个类似的
categories()
方法。这是因为,如果您有一个
$category
对象,您希望能够从中获取产品。在本例中,您可以说
$category->products()
,它将从多对多关系中获取所有产品。如果在
产品
模型上执行相反的操作,则可以
$Product->categories()
获取产品的类别。好的,那么如何调用它?类似于:
Product::all()->products()
::all()
返回要循环通过的。对不起,我想我不明白你的最终目标是什么
Product::all()
返回一个
集合
产品
对象…您想用它做什么,找到
类别
?我在这个假设下更新了我的问题。我需要按类别获取所有产品。例如,选择类别为1的所有产品,我按类别获取所有产品,可能是方法
products()
应该在
productmodel
中?在
Product
模型中,我将使用类似的
categories()
方法。这是因为,如果您有一个
$category
对象,您希望能够从中获取产品。在本例中,您可以说
$category->products()
,它将从多对多关系中获取所有产品。如果在
产品
模型上执行相反的操作,则可以
$Product->categories()
获取产品的类别。好的,那么如何调用它?类似于:
Product::all()->products()
::all()
返回要循环通过的。对不起,我想我不明白你的最终目标是什么
Product::all()
返回一个
集合
产品
对象…您想用它做什么,找到
类别
?我在这个假设下更新了我的问题。我需要按类别获取所有产品。例如,选择类别为1的所有产品
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Category extends Model
{
    /**
     * The products that belong to the category.
     */
    public function products()
    {
        return $this->belongsToMany('App\Product');
    }
}
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
    /**
     * The categories that belong to the product.
     */
    public function categories()
    {
        return $this->belongsToMany('App\Category');
    }
}
$products = Product::all();
foreach($products as $product) {
    // var_dump($product);

    $categories = $product->categories();
    foreach($categories as $category) {
        // var_dump($category);
    }
}