我正在尝试将payer_id和total_price存储在我已存储在会话中的数据库中。当我回应它们时,它们会在屏幕上显示,但是当我尝试创建记录的方式相同时,它无法正常工作。这是我的代码:
$event
以上这些行确实可行,但是当我执行以下操作时
echo (int)session()->get('quantity') * (int)session()->get('pc_cost');
echo session()->get('paypal_payment_id');
我还检查了数据库中的数据类型,它是total_price的整数和payer_id的varchar(255)。你能帮我解决这个问题吗?
答案 0 :(得分:1)
默认情况下,Eloquent模型可以防止质量分配。由于此行为,您的Model::create()
来电可能未设置值。
您可以使用$fillable
属性在模型上批量分配属性,如下所示:
class Order extends Model
{
protected $fillable = [
'user_id',
'ordered_pc_id',
'total_price',
'deadline',
'quantity',
'payer_id',
'status',
'notes',
];
}
请参阅文档中的更多详细信息:https://laravel.com/docs/5.2/eloquent#inserting-and-updating-models
您是否在模型中设置了所有属性?
答案 1 :(得分:0)
您也可以使用允许批量分配的 forceCreate():
$order = Order::forceCreate([
'user_id' => Auth::User()->id,
'ordered_pc_id' => $ordered->id,
'total_price' => $price,
'deadline' => session()->get('expected'),
'quantity' => session()->get('quantity'),
'payer_id' => $payer_id,
'status' => 0,
'notes' => session()->get('notes'),
]);