当前位置: 首页 > 知识库问答 >
问题:

储蓄有很多,并以雄辩的口才与之相关联

庾兴发
2023-03-14

有以下表格结构:

使用者

  • 有很多页

  • 属于用户
  • 有许多笔记

笔记

  • 属于用户

为了创造一个音符,我做了:

$note = new Note([
    'page_id': $this->page->id,
    'user_id': auth()->id(),
    'title': 'Foobar'
]);
$note->save();

容易。由于大规模赋值漏洞,我希望避免在注释模型的可填充内部具有外键。代码更改为:

$note = $this->page->notes()->create([
    'title': 'Foobar'
]);
$note->user()->associate(auth()->user());
$note->save();

模糊的为了实现这一点,我必须在迁移中使note的user_id为null。这感觉是错误的,因为如果没有用户,便笺就不应该存在。你将如何解决这个问题?

共有1个答案

杨学真
2023-03-14

你可以这样做代替:

php prettyprint-override">$note = new Note([
   'title' => 'your_title_here' //works if title is in the fillable attributes
]);
$note->page()->associate($this->page);
$note->user()->associate(auth()->user());
$note->save();

在这里,您不需要任何可为空的列,也不存在质量分配的风险。

另一个优点是,只有一个数据库查询,而不是两个,当您首先执行创建,然后执行另一个保存

 类似资料:
  • 我试着补充: 并用调用,但响应为空。

  • 我有一个表事务与复合主键id,Nom,日期和一个表Cour与Nom作为主键和一个事务有关一个Cour。 我怎样才能得到一个有口才关系的特定交易的课程?

  • 我使用的是Laravel 5.4,其模型和表格结构如下: 一个用户可以有多个账户 一个帐号可以被多个用户共享 每个账户有多个持有量 因此,用户通过他们的许多帐户间接拥有许多资产。 我需要帮助在用户模型上定义一个称为“持有量”的关系,以获得适用于用户的所有持有量(基于他们所链接的账户)。 我尝试了很多不同的东西,在谷歌上花了很长时间。我可以接近BelongToMany和hasManyThrough,

  • 我刚刚开始学习LaravelV3,我试图通过创建一个博客来了解eloquent的一对多关系。我的帖子与类别有多对一的关系(每个帖子都链接到一个类别)。 我有以下表格和以下字段: 帖子:id、标题、正文、创建日期、类别id 类别:id、名称 我有以下两种型号: 我想出了如何通过传递类别id来获得所有帖子: 我只是需要帮助,找出如何获得所有的职位,并得到他们的更正类别。因此,在视图中的一天结束时,我可

  • 我有帖子表和评论表。我想得到所有的帖子与它的评论和以下返回只是帖子有评论: 更新 例如 ID帖 1个职位1 2后2 id post\u id评论 1萨姆勒大学评论 Post::with('comments')只返回有注释的帖子,它只返回第一篇帖子,因为第二篇帖子没有注释,我想获取所有帖子(有注释或没有注释)

  • 我正在使用Laravel 5创建一个博客,但我对多对多(通过透视表)关系有一个奇怪的问题。我的DB设置如下: 文章表: id|bigint|20|PK|不为空|自动增量 title|varchar|255|不为空 body|text|不为空 category_id|bigint|20|不为空 created_at|时间戳|不空 updated_at|时间戳|非空 已发布|布尔值|非空 delete