关于laravel背包关系的保存问题

问题描述 投票:0回答:1

我在 ImageCrud 控制器中有一个字段。

        $this->crud->addField([
            'label'     => "Etiketler",
            'type'      => 'select_multiple',
            'name'      => 'tags', // the method that defines the relationship in your Model
            'entity'    => 'tags', // the method that defines the relationship in your Model
            'model'     => "App\Models\Tag", // foreign key model
            'attribute' => 'name', // foreign key attribute that is shown to user
            'pivot'     => true, 
        ]);

看起来像;

我还有另外 2 个型号,

Models\ImageTag.php
Models\Tag.php

ImageTag.php;


    protected $table = 'image_tags';
    protected $fillable = [
        'image_id',
        'tag_id'
    ];

这也是Tag.php

    protected $table = 'tags';
    protected $fillable = [
        'name',
        'slug',
        'description',
    ];

我的Image.php模型也有tags()公共函数。

    public function tags() {
        return $this->belongsTo('\App\Models\ImageTag', 'id', 'image_id');
    }

如果保留此项,CRUD 控制器将显示多个选择字段。但永远不要保存 image_tags 表记录。

这也是单击保存按钮后请求结果。

我该怎么办?我哪里做错了,谁能解释一下。任何想法。 谢谢。

relationship laravel-backpack laravel-relations
1个回答
0
投票

正确的关系是

belongsToMany

这是代码,

    public function tags() 
    {
        return $this->belongsToMany(Tag::class, ImageTag::class)->withTimestamps();
    }
© www.soinside.com 2019 - 2024. All rights reserved.