使用slim框架重定向插入两次

时间:2014-12-16 21:08:21

标签: php slim

我想要插入2次,但我有相互重定向的路由,我进行第一次插入,然后redirijo到另一个路径再次插入。必须把开始 - > transanction() 做得好吗?问候

我首先在路线中进行了第一次插入

$app->post("/orders/insert", function() use($app)
{
    $empleado = ORM::for_table('empleado')->select('id')->where('usuario_idusuario',$_SESSION['user_id'])->find_one();
    $cliente = 'proveedor';
    if(!$empleado)
    {
        $app->flash('error','La cuenta de usuario tiene que estar asociado a un empleado registrado en la base de datos');
        $app->redirect($app->urlFor('cartList'));
    }
    try
    {
        $insertOrder = ORM::for_table('pedido')->create();
        $insertOrder->fechapedido = date('Y/m/d');
        $insertOrder->estado = 1;
        $insertOrder->empleado_id = $empleado->id;
        $insertOrder->proveedor_id =  $_SESSION['idproveedor'];
        $insertOrder->save();
        $app->redirect("/lineorder/insert/$cliente");
    }
    catch(PDOException $e)
    {
        $app->flash('error','Ha ocurrido un error en la base de datos, no se ha insertado ningún pedido'.$e->getMessage());
        $app->redirect($app->urlFor('cartList'));
    }
});

在我进入重定向并实现的路线之后:

$app->map('/lineorder/insert/:cliente', function($cliente) use($app)
{
    if(!isset($_SESSION['cart-items']))
    {
         $app->redirect($app->urlFor('create-order'));
         $app->flash('error','No tienes carritos');
    }
    //Si existe la variable de sesion
    else
    {
        if(count($_SESSION['cart-items'])>0)
        {
            $idpedido = ORM::for_table('pedido')->count();
            foreach($_SESSION['cart-items'] as $id => $cantidad)
            {
                $producto = ORM::for_table('producto')->select_many('id','precioVenta','precioProveedor')->where('id',$id)->find_one();
                $preciounidad = ($cliente==='proveedor') ? $producto->precioProveedor : $producto->precioVenta;
                $lineorder_insert = ORM::for_table('lineapedido')->create();
                $lineorder_insert->pedido_idpedido = $idpedido;
                $lineorder_insert->producto_idproducto =$producto->id;
                $lineorder_insert->cantidad = $cantidad;
                $lineorder_insert->preciounidad = $preciounidad;
                $lineorder_insert->save();
                //Actualizo cantidad en la table productos
                $cantidad_stock =$producto->cantidad_stock;
                $cantidad_stock+=$cantidad;
                $update_amount = ORM::for_table('producto')->find_one($id);
                $update_amount->set('cantidad_stock',$cantidad_stock);
                $update_amount->save();
                $app->flash('success',"pedido {$idpedido} creado correctamente");
                $app->redirect($app->urlFor('orderList'));
            }
        }
    }
})->via('GET','POST');

我需要begin-> transaction()

你会做得好吗?

0 个答案:

没有答案