【发布时间】:2021-03-26 18:41:42
【问题描述】:
我试图将一个类对象保存到会话中,但不知何故它抛出了“不允许序列化'Closure'”错误。
我能做些什么来解决它?
下面是我的代码
public function getAddToCart(Request $request, $id){
$listing=Listing::find($id);
$cart = new Cart(null);
$cart->add($listing,$listing->id); //this is working
Session::put('cart',$cart);
Session::save();
return Redirect::to('/');
}
下面是我的课
class Cart {
public $items=null;
public $totalQty=0;
public $totalPrice=0;
public function __construct($oldCart){
if($oldCart){
$this->items=$oldCart->items;
$this->totalQty=$oldCart->totalQty;
$this->totalPrice=$oldCart->totalPrice;
}
}
public function add($item, $id){
$this->items[$id]=['qty'=>0,'price'=>0,'item'=>$item];
$this->totalQty++;
$this->totalPrice+=10000;
}
}
这是错误
(Laravel、会话、对象、Serealize)
这是模型
<?php namespace Nanolution\Listing\Models;
class Listing extends Model
{
use \October\Rain\Database\Traits\Validation;
public $table = 'nanolution_listing_';
public $rules = [
];
public $attachMany=[
"gallery"=>"System\Models\File"
];
public $hasMany=[
'testimonials'=>"Nanolution\Listing\Models\Testimonial"
];
public $belongsToMany=[
'categories'=>["Nanolution\Listing\Models\Category",
'table'=>'nanolution_listing_list_cate'
]
];
public function getNameAttribute()
{
return $this->attributes['name'];
}
}
【问题讨论】:
-
@lagbox 列表只是一个 Eloquent 模型
-
可以展示一下模型吗
-
是的,它已编辑。
-
需要查看基本模型和特征,但似乎某些东西已经在列表的模型实例上设置了一个闭包..
-
我设置成'item'=>$item->title,问题就解决了
标签: php laravel object session serialization