无法在laravel中保存会话的价值

时间:2016-05-26 20:34:48

标签: php database laravel session-variables

我正在尝试将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)。你能帮我解决这个问题吗?

2 个答案:

答案 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'),
]);