У меня есть веб-приложение cakephp, и для этой конкретной функции проверки контроллера (которая представляет собой представление с некоторыми входными данными и списком продуктов) по какой-то причине setFlash, который я намереваюсь показать после сохранения данных, не работает как так должно быть. Он должен отображаться в представлении indexstock.ctp, куда я перенаправляю пользователя, если сохранение прошло успешно, но вместо этого оно загружается в этом самом представлении checkout.ctp. Я пересматривал этот код бесчисленное количество раз и не могу найти, где находится ошибка, несмотря на нетипичную логику этой функции, части rsetflash и redirect те же, что и во всех остальных функциях этого проекта.
Это моя функция:
public function checkout() {
$this->loadModel('Sale');
if (!empty($this->data))
{
$this->Sale->create();
if ($this->Sale->save($this->data))
{
session_start();
foreach($_SESSION["shopping_cart"] as $values)
{
$this->Sale->ProductsSale->create();
$this->Sale->ProductsSale->saveField('sale_id', $this->Sale->id);
$this->Sale->ProductsSale->saveField('product_id', $values['product_id']);
$this->Sale->ProductsSale->saveField('cant', $values['product_quantity']);
$this->Sale->ProductsSale->saveField('price', $values['product_price']);
$this->Sale->ProductsSale->saveField('shipping_id', $values['product_shipping']);
$this->Product->ProductsShipping->id = $values['product_psid'];
$this->Product->ProductsShipping->saveField('sold',$values['product_quantity']);
}
$this->Sale->Transaction->create();
$this->Sale->Transaction->saveField('date',$this->data['Sale']['date']);
$this->Sale->Transaction->saveField('concept',$this->data['Sale']['details']);
$this->Sale->Transaction->saveField('sign','+');
$this->Sale->Transaction->saveField('amount',$_SESSION["total_price"]);
$this->Sale->Transaction->saveField('sale_id', $this->Sale->id);
unset($_SESSION["shopping_cart"]);
//THIS GUY HERE IS THE ONE NOT BEHAVING CORRECTLY
$this->Session->setFlash('<strong>Exito!</strong> El producto se ha guardado', 'Flash/success');
$this->redirect(array('action'=>'indexstock'),null, true);
} else {
$this->Session->setFlash('<strong>Error!</strong> El producto no se ha guardado', 'Flash/error');
}
}
$clients = $this->Sale->Client->find('list');
$this->set(compact('clients'));
}
Как мне решить эту проблему?