繁体   English   中英

Laravel附加数据透视表没有错误

Laravel attach pivot data without errors

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我在模型产品上有一个数据透视表和一个关系:

public function product_bodies()
{
    return $this->belongsToMany(static::class, 'product_bodies')->withPivot('product_id', 'product_body_id');
}

在控制器中要附加数据时:

    $products = ['sadasdasd', 'asdasda', 'asdasd', 'asdasd']; //for column product_body_id
    $product = Product::create($request->all());

    $product->product_bodies()->attach($products);

我得到错误:

常规错误:1364字段“ product_body_id”没有默认值

如果我这样做:

public function product_bodies()
{
    return $this->belongsToMany(static::class, 'product_bodies', 'product_id', 'product_body_id')->withPivot('product_id', 'product_body_id');
}

然后一切正常。 但是然后我无法通过以下方式获取数据透视表:

$product->product_bodies;

我收到空物品。

我该如何解决这个问题?

product_bodies具有3列:

  • ID
  • PRODUCT_ID
  • product_body_id

在product_body_id中,我传递了字符串。

1 个回复

我有3个想法:

  1. 您需要将static :: class替换为'\\ App \\ ProductBody'或ProductBody :: class

     public function product_bodies() { return $this->belongsToMany('\\App\\ProductBody', 'product_bodies')->withPivot('product_id', 'product_body_id'); } 
  2. $ products必须是产品主体ID的数组。

     $productBodiesIds = [1, 55, 66]; $product->product_bodies()->attach($productBodiesIds); 
  3. 也许,同步而不是附加将是一个更好的解决方案。

2 Laravel附加数据数组以进行透视

我正在尝试附加数据数组。 我有产品集合并尝试获取单个项目,并插入数据透视表。 我不想把attach放在循环中,因为我想要一个db调用 ...

3 Laravel 数据透视表与附加模型

在我的项目中,我需要用户能够将其他用户添加为收藏夹。 最初我有表'users' 。 现在我想到了两种方法: 1 - Crate 数据透视表'favorite_users' ,包含以下字段: “author_user_id” (指的是“users”表上的“id”列) “favourite ...

4 Laravel数据透视表附加重复很多次

在我的项目中,有一个比赛,其中包括许多团队,组织者可以将许多文件/照片上传到比赛中,将它们分配给一个团队,因此我决定制作一个files表来存储所有文件数据,而有单独的表用于compactions ,以及teams和我做枢轴表作为与字段competition_file competition_id , ...

5 Laravel 将数据透视表附加到具有多个值的表

背景 我正在创建一个围绕食物过敏的数据库,我在食物和过敏之间有很多关系。 还有一个称为severity的枢轴值,它有一个数字表示该食品的过敏严重程度。 这个链接表看起来像这样; 问题 尝试使用$allergy_ids更新链接表时(其中$allergy_ids是一个数组) 我将如何将多个值与 ...

7 与数据透视表Laravel有关的错误

我需要在用户表和订阅表之间建立关系。 注册的用户将获得默认的免费用户,并看到1个要约。 如果白银看到8个报价,黄金看到15个,铂金20个,那么我用数据透视表subscription_user在用户表和订阅表之间建立了关系。 第一个问题是我是否在模型关联方面犯了错误? 第二个问题是如何默认 ...

9 Laravel 观察者未附加在数据透视表上

我有一个与自身有父关系的Category模型: 以及与FieldCategory的多对多关系 我有一个CategoryObserver来观察父级是否有任何变化(例如,如果一个类别被移到子类别中)如果有变化我想将父FielCategory条目附加到子类别 它在updated时工作正常! 但 ...

10 在 Laravel 中的数据透视表上定义附加关系

我正在做一个 Laravel 小项目,在该项目中,我的组和用户处于多对多关系。 这些模型使用以下数据透视表 "group_members" : 在此表中,我添加了一个名为“group_role_id”的附加 ID,它与“group_roles”表中的成员资格类型(普通成员、版主等)相关联: ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM