关系1-n多个BACKPACKLaravel

Relationship 1-n multiple BACKPACK Laravel

最后 laravel 我用 backpack 5 Pro。

我想select几个数据,保存在数据库中,然后检索。

我有两个表:

产品 - id, name

文章 - id, title, products_id

在我的模型中 Articles.php :

public function produit()
{
    return $this->belongsTo('App\Models\Products', 'products_id', 'id');
}

在我的控制器中 ArticlesCrudController.php :

$this->crud->addField(
    [
        'label'     => "Products Links",
        'type'      => 'relationship',
        'name'      => 'produit', 
        'entity'    => 'produit', 
        'model'     => "App\Models\Products",
        'attribute' => 'product_name', 
        'allows_null' => true,
        'multiple'     => true, <--- WANT MULTIPLE SELECT
        'tab' => 'Products links',
        'options'   => (function ($query) {
                    return $query->orderBy('product_name', 'ASC')->get();
        }),
    ]
);

在我的数据库中:

products_id 包含:["15","18"]

除我的结果列表外,一切正常。它只显示一个结果(id:15)而不是两个或更多...(15 和 18)。

这不是建立这种关系的方法,您只能在 product_id 中存储一个值。

根据您的结构,您的产品可以有多个文章,因此在您的文章中创建两行(数据库中的两条记录):

考虑这个伪代码:

$article1 = [
   'id' => 1,
   'title' => 'Article 1',
   'product_id' => 15
];

$article2 = [
   'id' => 1,
   'title' => 'Article 1',
   'product_id' => 15
]

现在 ID 为 15 的产品有 2 篇文章(1 和 2)。

如果您希望您的文章包含多个产品并且 vice-versa 然后创建 Many to many relation