我在 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 表记录。
这也是单击保存按钮后请求结果。
我该怎么办?我哪里做错了,谁能解释一下。任何想法。 谢谢。
正确的关系是
belongsToMany
。
这是代码,
public function tags()
{
return $this->belongsToMany(Tag::class, ImageTag::class)->withTimestamps();
}