然后是另一个信息
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);
}谢谢你的帮助。
发布于 2014-04-10 23:33:01
这类问题现在已经成为了在Stackoverflow上问了一百万次。下面是如何处理编译器错误的基本工作流程和注意事项,它们肯定会帮助您自己解决所有问题:
错误告诉您,您的方法签名必须与继承的父签名匹配。这些论点必须匹配。
正如mark在注释中已经提到的,只有非常确定自己知道自己在做什么,才应该重载核心类方法。如果不这样做,这很可能最终会导致一堆失败。
您可以禁用严格的错误,但是这确实是不推荐的错误,它们存在是有原因的。请参阅如何消除php5严格的标准错误?
看起来你在做手推车,这是我送给CakePHP电子商务开发人员的礼物:https://github.com/burzum/cakephp-cart-plugin
https://stackoverflow.com/questions/22998457
复制相似问题