无法从 laravel 中的会话中保存值
Can't save value from session in laravel
我正在尝试将 payer_id 和 total_price 存储在我已存储在会话中的数据库中。当我回显它们时,它们确实显示在屏幕上,但是当我尝试以同样的方式创建记录时,它不起作用。这是我的代码:
echo (int)session()->get('quantity') * (int)session()->get('pc_cost');
echo session()->get('paypal_payment_id');
上面这些行确实工作得很好,但是当我执行以下操作时
$price = (int)session()->get('quantity') * (int)session()->get('pc_cost');
$payer_id = session()->get('paypal_payment_id');
$order = Order::create([
'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'),
]);
我还检查了数据库中的数据类型,total_price 是整数,payer_id 是 varchar(255)。你能帮我解决这个问题吗?
作为默认 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
您是否在模型中为所有属性设置了此设置?
您还可以使用允许批量分配的 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'),
]);
我正在尝试将 payer_id 和 total_price 存储在我已存储在会话中的数据库中。当我回显它们时,它们确实显示在屏幕上,但是当我尝试以同样的方式创建记录时,它不起作用。这是我的代码:
echo (int)session()->get('quantity') * (int)session()->get('pc_cost');
echo session()->get('paypal_payment_id');
上面这些行确实工作得很好,但是当我执行以下操作时
$price = (int)session()->get('quantity') * (int)session()->get('pc_cost');
$payer_id = session()->get('paypal_payment_id');
$order = Order::create([
'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'),
]);
我还检查了数据库中的数据类型,total_price 是整数,payer_id 是 varchar(255)。你能帮我解决这个问题吗?
作为默认 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
您是否在模型中为所有属性设置了此设置?
您还可以使用允许批量分配的 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'),
]);