php - Laravel 5.0 在附加后获取插入到数据透视表中的行的 id
问题描述
我有一个具有多对多关系的时事通讯和块模型。当我将一个块附加到时事通讯时,我想要插入到数据透视表中的行的 ID。
这是我尝试过的,但结果为“null”
$newsletter = Newsletter::findOrFail($newsletterId);
$newsletterBlock = $newsletter->blocks()->attach($blockId);
dd($newsletterBlock);
解决方案
虽然这个问题很老,但是没有人给出正确的答案。如果您处于数据透视表具有主键的情况。withPivot
当您想在加载相关模型时获取 id 时,使用方法很有用。但是,当您附加某些内容时,您无法获得 pivot_id;在这些情况下,最好的办法是使用连接到数据透视表的模型,然后您只需使用其模型插入数据透视表,而不是将两个模型连接在一起。
在这个例子中,首先创建一个模型,BlockNewsLetter
如果有必要填充模型的$table
和$fillable
属性,然后你就可以开始了。
$newsletter = Newsletter::findOrFail($newsletterId);
$blockNewsLetterPivot = BlockNewsLetter::updateOrCreate([
'block_id' => $block_id ,
'newsLetter_id' => $newsletter->id
]);
$inserted_pivot_id = $blockNewsLetterPivot->id;
推荐阅读
- javascript - javascript中字符串和十六进制的按位运算
- r - 通过缺失的行名有条件地将缺失的行添加到数据框列表中的数据框
- r - 如何使用汇总命令平均一组列并排除 R 中的其他特定列?
- docker - 如何在 docker compose 中使用 docker image 指定环境变量
- android - 如何在应用程序的背景中添加模糊效果?
- c++ - Opencv没有匹配的函数调用FastFeatureDetector
- monitoring - 是否可以在 Grafana 中绘制比率趋势图?
- json - 将 JSON 键的值存储在 Bash 变量中
- python - Python - 使用 ajax 将选择列表中的选定项目发布到 Flask
- python - 当遇到 PDF 中的图像时,pyttsx3 和 PyPDF4 停止 PDF 的文本到语音转换