首页 > 解决方案 > 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它的价值可能是无意义的。

我知道在插入之前将“债务”定义为变量会解决它,但我想知道是否有更优雅的解决方案。

标签: phpmysqllaravel

解决方案


所以在插入之外这样做

$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),
]);

推荐阅读