php - Laravel - 从 DB::table()->insert 访问一个值
问题描述
我正在使用Faker构建一个插入查询,我想知道是否可以在另一个值中使用要插入的值。
这是一个示例,对我的情况不准确,但解释得很好:
DB::table('debts')->insert([
'name' => $faker->company,
'debt' => $faker->randomFloat($nbMaxDecimals = 2, $min = 20000, $max = 10000000),
'debt_paid' => 'debt' / rand ( 2 , 8 ),
'notes' => $faker->paragraph($nbSentences = 3, $variableNbSentences = true),
]);
如您所见,在debt_paid
我想访问的行中'debt'
,随机定义了上面一行的值。这是因为debt_paid
需要是合乎逻辑的,没有debt
它的价值可能是无意义的。
我知道在插入之前将“债务”定义为变量会解决它,但我想知道是否有更优雅的解决方案。
解决方案
所以在插入之外这样做
$dbt = $faker->randomFloat($nbMaxDecimals = 2, $min = 20000, $max = 10000000);
DB::table('debts')->insert([
'name' => $faker->company,
'debt' => $dbt,
'debt_paid' => $dbt / rand ( 2 , 8 ),
'notes' => $faker->paragraph($nbSentences = 3, $variableNbSentences = true),
]);
推荐阅读
- c - 如何用 C 填充一个空的数独板
- r - 找到取决于另一个变量的最大值
- typescript - 如何在cdk中的aws嵌套堆栈之间进行交叉堆栈引用
- pandas - 字典到数据框的列表
- azureservicebus - Azure Logic App Standard - 从未触发服务总线触发器
- javascript - InnerText 不适用于 Javascript 中的深层克隆?
- r - 在 rShiny 应用程序中使用 markerClusterOptions() 时弹出传单
- three.js - Three.js 删除 LineSegments 中的孔/内线
- keycloak - 如何自己生成 SSO Cookie (KEYCLOAK_IDENTITY)?
- azure-pipelines - 在 azure pipieline 中获取内部版本号