mejora mia
This commit is contained in:
@@ -117,35 +117,30 @@ API server-side para operaciones de base de datos. Disponible en todos los hooks
|
|||||||
|
|
||||||
```php
|
```php
|
||||||
// Todos los registros
|
// Todos los registros
|
||||||
$products = CmsApi::get('productos');
|
$products = CmsApi::get("productos");
|
||||||
|
|
||||||
// Con condición WHERE
|
// Con condición WHERE en string
|
||||||
$active = CmsApi::get('productos', ['active' => 1]);
|
$active = CmsApi::get("productos", "active=1");
|
||||||
|
|
||||||
// Con orden y límite
|
// Con orden y límite
|
||||||
$latest = CmsApi::get('noticias', [], 'fecha DESC', 5);
|
$latest = CmsApi::get("noticias", "", "fecha DESC", 5);
|
||||||
|
|
||||||
// Con condición string
|
// Con condición string
|
||||||
$activos = CmsApi::get('productos', 'activo=1');
|
$activos = CmsApi::get("productos", "activo=1");
|
||||||
|
|
||||||
// Condición compleja como array
|
// Condición compleja
|
||||||
$caros = CmsApi::get('productos', [
|
$caros = CmsApi::get("productos", "precio > 100");
|
||||||
["column" => "precio", "operator" => ">", "value" => 100]
|
|
||||||
]);
|
|
||||||
|
|
||||||
// Múltiples condiciones (AND)
|
// Múltiples condiciones (AND)
|
||||||
$resultados = CmsApi::get('productos', [
|
$resultados = CmsApi::get("productos", "activo = 1 AND stock > 0");
|
||||||
["column" => "activo", "operator" => "=", "value" => 1],
|
|
||||||
["column" => "stock", "operator" => ">", "value" => 0]
|
|
||||||
]);
|
|
||||||
|
|
||||||
// Con operadores
|
// Con operadores
|
||||||
$expensive = CmsApi::get('productos', ['precio' => ['>=' => 100]]);
|
$expensive = CmsApi::get("productos", "precio >= 100");
|
||||||
$search = CmsApi::get('productos', ['nombre' => ['LIKE' => '%keyword%']]);
|
$search = CmsApi::get("productos", "nombre LIKE '%keyword%'");
|
||||||
$inList = CmsApi::get('productos', ['categoria_num' => ['IN' => [1, 2, 3]]]);
|
$inList = CmsApi::get("productos", "categoria_num IN (1, 2, 3)");
|
||||||
|
|
||||||
// Con opciones
|
// Con opciones
|
||||||
$datos = CmsApi::get('productos', '', '', '', [
|
$datos = CmsApi::get("productos", "", "", "", [
|
||||||
'translates' => true,
|
'translates' => true,
|
||||||
'uploads' => true,
|
'uploads' => true,
|
||||||
'relations' => true,
|
'relations' => true,
|
||||||
@@ -237,36 +232,7 @@ Para búsquedas y lecturas habituales, prioriza:
|
|||||||
3. SQL manual solo si de verdad no hay alternativa razonable
|
3. SQL manual solo si de verdad no hay alternativa razonable
|
||||||
|
|
||||||
### `CocoDB::get($table, $where, $order, $limit, $options)`
|
### `CocoDB::get($table, $where, $order, $limit, $options)`
|
||||||
|
### Funcionalidad exactamente igual a CmsApi::get ( ver referencia CmsApi::get )
|
||||||
```php
|
|
||||||
// Básico
|
|
||||||
$records = CocoDB::get('productos', ['activo' => 1], 'orden ASC', 10);
|
|
||||||
|
|
||||||
// Where con operadores avanzados
|
|
||||||
$records = CocoDB::get('productos', [
|
|
||||||
['column' => 'precio', 'value' => 100, 'operator' => '>='],
|
|
||||||
['column' => 'categoria_num', 'value' => [1, 2, 3], 'operator' => 'IN'],
|
|
||||||
]);
|
|
||||||
|
|
||||||
// Condiciones OR
|
|
||||||
$records = CocoDB::get('productos', [
|
|
||||||
['column' => 'nombre', 'value' => '%keyword%', 'operator' => 'LIKE'],
|
|
||||||
['column' => 'descripcion', 'value' => '%keyword%', 'operator' => 'LIKE', 'or' => true],
|
|
||||||
]);
|
|
||||||
|
|
||||||
// NOT
|
|
||||||
$records = CocoDB::get('productos', [
|
|
||||||
['column' => 'estado', 'value' => 'borrador', 'operator' => '=', 'not' => true],
|
|
||||||
]);
|
|
||||||
|
|
||||||
// IS NULL
|
|
||||||
$records = CocoDB::get('productos', [
|
|
||||||
['column' => 'fecha_baja', 'value' => '', 'operator' => 'IS NULL'],
|
|
||||||
]);
|
|
||||||
|
|
||||||
// Limit con offset
|
|
||||||
$records = CocoDB::get('productos', [], 'num DESC', ['limit' => 10, 'offset' => 20]);
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Opciones de `get()`
|
#### Opciones de `get()`
|
||||||
|
|
||||||
@@ -436,7 +402,7 @@ En este ejemplo, el endpoint usa `calcular_precio` porque el archivo vive en:
|
|||||||
```php
|
```php
|
||||||
<?php
|
<?php
|
||||||
// hook.php del módulo "procesar_compra"
|
// hook.php del módulo "procesar_compra"
|
||||||
$producto = CmsApi::get('productos', "num=$producto_id");
|
$producto = CmsApi::get("productos", "num=" . $producto_id);
|
||||||
|
|
||||||
if (empty($producto)) {
|
if (empty($producto)) {
|
||||||
return ["success" => false, "message" => "Producto no encontrado"];
|
return ["success" => false, "message" => "Producto no encontrado"];
|
||||||
@@ -454,7 +420,7 @@ CmsApi::insert('ventas', [[
|
|||||||
]], [], ['return_last_id' => true]);
|
]], [], ['return_last_id' => true]);
|
||||||
|
|
||||||
// Actualizar stock
|
// Actualizar stock
|
||||||
$stock = CmsApi::get('stocks', "producto_num=$producto_id");
|
$stock = CmsApi::get("stocks", "producto_num=" . $producto_id);
|
||||||
if (!empty($stock)) {
|
if (!empty($stock)) {
|
||||||
CmsApi::update('stocks',
|
CmsApi::update('stocks',
|
||||||
["cantidad" => $stock[0]['cantidad'] - $cantidad],
|
["cantidad" => $stock[0]['cantidad'] - $cantidad],
|
||||||
|
|||||||
Reference in New Issue
Block a user