然后另一条消息大致相同的说法
Cart :: save()声明应与Model :: save
兼容基本问题是,每当我尝试向其添加产品时,购物车都会拒绝更新(它是一个简单的ajax脚本)。 我希望我能更多地谈论这个,但我不知道什么是错的。我试过将不同的参数传递给函数但没有任何作用。这是相关的功能,抱歉它很长。
CartsController:
$carts = $this->Cart->read();
$products = array();
if (null!=$carts) {
foreach ($carts as $productId => $count) {
$product = $this->Product->read(null,$productId);
$product['Product']['count'] = $count;
$products[]=$product;
}
}
$this->set(compact('products'));
}
public function update() {
if ($this->request->is('post')) {
if (!empty($this->request->data)) {
$cart = array();
foreach ($this->request->data['Cart']['count'] as $index=>$count) {
if ($count>0) {
$productId = $this->request->data['Cart']['product_id'][$index];
$cart[$productId] = $count;
}
}
$this->Cart->save($cart);
}
}
$this->redirect(array('action'=>'view'));
}
购物车型号:
public function save($data) {
return CakeSession::write('cart',$data);
}
/*
* read cart data from session
*/
public function read($data) {
return CakeSession::read('cart', $data);
}
感谢您的帮助。
答案 0 :(得分:1)
这类问题现在已asked a felt million times on Stackoverflow。以下是如何处理编译器错误和通知的基本工作流程,这些工作肯定会帮助您自己解决这些问题:
该错误告诉您方法签名必须与继承的父签名匹配。参数必须匹配。
正如标记已在评论中提到的那样,只有在您确定知道自己正在做什么的情况下才能重载核心类方法。如果不是这很可能最终导致一堆失败。
您可以禁用严格错误但确实 不建议,它们存在是有原因的。见How to eliminate php5 Strict standards errors?
看起来你正在推车,好吧,这是我送给CakePHP电子商务开发人员的礼物:https://github.com/burzum/cakephp-cart-plugin