mysql - 将数组输入到 firstOrCreate 会产生错误 Laravel 5.7
问题描述
我正在使用以下代码在我的控制器上运行 firstOrCreate:
private function validateNumberBD($areaCodes,$numbers){
$arrayAreaCodes = array();
foreach ($areaCodes as $key => $value) {
$arrayAreaCodes[] = $value->AREACODES_ID;
}
$consultArray = array();
for($i = 0; $i < count($numbers); $i++){
for($j = 0; $j < count($arrayAreaCodes);$j++){
$consultArray[] = (['PHONE' => $numbers[$i],'AREACODES_ID' => $arrayAreaCodes[$j]]);
}
}
//dd($consultArray);
$searchOrCreate = Phone::firstOrCreate($consultArray);
}
由于执行该代码会产生以下错误,因此产生了我的问题:
如果我对我的 $consultArray 变量执行 dd (),它会显示以下数组
我认为我的错误在于如何列出数据,但我真的不知道还能做什么。
在查询模式下,如何知道 firstOrCreate 为我创建了多少个值?
解决方案
firstOrCreate 无法检查或插入多条记录,并且您正在发送一个数组数组。
for($i = 0; $i < count($numbers); $i++){
for($j = 0; $j < count($arrayAreaCodes);$j++){
$searchOrCreate = Phone::::firstOrCreate(
['PHONE' => $numbers[$i], 'AREACODES_ID' => $arrayAreaCodes[$j]]);
}
}
这可以工作。
推荐阅读
- firebase - 如何将 Firebase 云数据显示为表格并显示图像?
- python - 使用 python re.findall 分割线
- typescript - bazel ts_library 中的普通 TypeScript 元组缺少“[Symbol.iterator]()”方法
- css - 当我在 sass 文件中包含两次媒体查询时,是否可以在编译的 css 中只生成一次媒体查询?
- python - print() 和 matplitlib.pyplot.imshow() 未在 jupyter notebook 的“for”循环中同步
- javascript - JavaScript 和 Python Promise / Awaitable Evaluation 的区别
- postgresql - 将数据插入子表时,父表上的索引是否会更新?
- python - 是否可以在没有互联网和自定义路径库的机器上安装 scikit-learn?
- javascript - 从 Apache 服务器获取图像到托管在 tomcat 服务器上的 Web 应用程序
- aws-sdk-go - 将 map[string]types.AttributeValue 解组到特定的业务模型/结构