kumbia / activerecord
快速 ActiveRecord
v0.5.9
2022-09-21 21:28 UTC
Requires
- php: >=7.4.0
- ext-pdo: *
README
西班牙语 - 英文
ActiveRecord
正在开发中的新 ActiveRecord。
请勿在生产环境中使用
在 KumbiaPHP 中使用 composer 安装
需要 KumbiaPHP > 0.9RC
- 在项目根目录下创建 composer.json 文件
--proyecto | |--vendor |--default |--core |--composer.json Acá va nuestro archivo
- 添加以下代码
{ "require": { "kumbia/activerecord" : "dev-master" } }
-
执行 composer install 命令
-
按照下一节中的步骤 2 和 3 操作。
在 KumbiaPHP 中安装
需要 KumbiaPHP > 0.9RC
-
将 config/config_databases.php 复制到 app/config/databases.php 并进行配置
-
(可选) 在 app/libs/ 中添加 lite_record.php 和/或 act_record.php
LiteRecord
对于喜欢 SQL 和 ORM 优势的用户,包括一个迷你 ActiveRecord
<?php //app/libs/lite_record.php /** * Record * Para los que prefieren SQL con las ventajas de ORM * * Clase padre para añadir tus métodos * * @category Kumbia * @package ActiveRecord * @subpackage LiteRecord */ //use Kumbia\ActiveRecord\LiteRecord as ORM; class LiteRecord extends \Kumbia\ActiveRecord\LiteRecord { }
ActRecord
完整的 ActiveRecord
<?php //app/libs/act_record.php /** * ActiveRecord Nuevo * * Clase padre para añadir tus métodos * * @category Kumbia * @package ActiveRecord * @subpackage ActiveRecord */ //use Kumbia\ActiveRecord\ActiveRecord; class ActRecord extends \Kumbia\ActiveRecord\ActiveRecord { }
示例
模型
<?php //app/models/personas.php class Personas extends ActRecord //o LiteRecord según el que prefiera { }
或直接不使用基类
<?php //app/models/personas.php class Personas extends \Kumbia\ActiveRecord\LiteRecord { }
控制器
<?php //app/controller/personas_controller.php class PersonasController extends AppController { public function index() { $this->data = Personas::all(); } public function find($id) { $this->data = Personas::get($id); } }
在 LiteRecord 中使用方法
过滤数据
//obtener todos los registros como array $filas = Personas::all(); echo $filas[0]->nombre; //obtener un registro por su clave primaria $fila = Personas::get($personaId); echo $fila->nombre; //obtener los registros como array según el filtro $filas = Personas::filter("WHERE nombre LIKE ?", [$nombrePersona]); echo $filas[0]->nombre; //obtener registro según sql $fila = Personas::first("SELECT * FROM personas WHERE nombre = :nombre", [":nombre" => $nombrePersona]); echo $fila->nombre; //obtener array de registros según sql $filas = Personas::all("SELECT * FROM personas WHERE fecha_contrato >= ?", [$fechaContrato]); echo $filas[0]->nombre;
DML / 创建、更新、删除
//creando un nuevo registro $personaObj = new Personas(); $personaObj->create([ 'nombre' => 'Edgard Baptista', 'cargo' => 'Contador', 'fecha_contrato' => date('Y-m-d'), 'activo' => 1 ]); //retorna True o False si hay éxito o error respectivamente //creando un nuevo registro //alternativa //por favor, prefiera este método por su simplicidad. //save ejecuta el método create cuando falta la clave primaria y //el de actualización cuando existe $personaObj = new Personas(); $personaObj->save([ 'nombre' => 'Edgard Baptista', 'cargo' => 'Contador', 'fecha_contrato' => date('Y-m-d'), 'activo' => 1 ]); //retorna True o False si hay éxito o error respectivamente //creando un nuevo registro //alternativa //método abreviado //pasamos los datos cuando se instancia la clase $personaObj = new Personas([ 'nombre' => 'Edgard Baptista', 'cargo' => 'Contador', 'fecha_contrato' => date('Y-m-d'), 'activo' => 1 ]); $personaObj->save(); //retorna True o False si hay éxito o error respectivamente //actualizar un registro //primero buscar el registro que se quiere actualizar $personaObj = Personas::get($personaId); $personaObj->update([ 'nombre' => 'Edgard Baptista', 'activo' => 0 ]); //retorna True o False si hay éxito o error respectivamente //actualizar un registro //alternativa //primero buscar el registro que se quiere actualizar $personaObj = Personas::get($personaId); $personaObj->save([ 'nombre' => 'Edgard Baptista', 'activo' => 0 ]); //retorna True o False si hay éxito o error respectivamente //borrar un registro usando su clave primaria Personas::delete($personaId);