niroee / easy-orm
简单轻量级的PHP ORM
dev-main
2023-02-04 19:25 UTC
Requires
- ext-pdo: *
Requires (Dev)
- phpunit/phpunit: 10.0.x-dev
This package is auto-updated.
Last update: 2024-09-04 23:05:06 UTC
README
Easy ORM 是一个简单轻量的PHP数据库类。
安装
使用composer
composer require niroee/easy-orm
用法
您可以使用此ORM从一张表中执行CRUD操作。
首先,您应该创建一个继承自 Niroee\EasyOrm 的类
use Niroee\EasyOrm\Model; class Users extends Model{}
对于您拥有的每个表,您必须创建一个特定的模型。例如,
Users类指向users表,而UserAddresses类指向user_addresses表。
使用自定义表名创建模型
您可以通过将 $table 属性传递到您的类中来在您的类中定义
use Niroee\EasyOrm\Model; class OtherTable extends Model { protected string|null $Table = "users"; }
访问模型
$Users = Users::get(); // return all users // or $UsersInstance = new Users(); [$Users = $UsersInstance->get(); // return all users]()
您必须使用 get()、first()、json()、toArray() 方法进行选择,以及使用 exec() 方法进行插入、更新和删除查询。
get()
返回所有条目;
$Users = Users::get(); // return all users $FirstUserName = $Users[0]->name;
first()
返回第一个条目;
$User = Users::first()->name; // return name of first user
json()
返回所有条目作为JSON序列化的字符串;
$Users = Users::json(); // return json string
toArray()
返回所有条目作为数组(嵌套数组);
$Users = Users::toArray(); $FirstUserName = $Users[0]['name'];
如果您想更新、插入或删除条目,您必须在查询后使用 exec() 方法。
Users::insert(['name' => 'milad'])->exec(); Users::update(['name' => 'ali'])->where('name', '=', 'milad')->exec(); Users::delete()->where('name', '=', 'ali')->exec();
如果您想查看查询,您可以使用 query() 方法;
Users::query(); // SELECT * FROM `users` Users::insert(['name' => 'milad'])->query(); // INSERT INTO users(name) VALUES(?)
条件
如果您想为查询指定条件,您可以使用 where()、andWhere() 和 orWhere() 方法。
Users::update(['name' => 'milad',]) ->where('id', '=', 2) ->exec(); //or Users::update(['name' => 'milad']) ->where('id', '=', 2) ->andWhere('name', '=', 'ali') ->orWhere('id', '=', 1) ->exec();
这三个方法接受三个参数
- 列:字符串
- 运算符:字符串
- 值:混合类型
where($Column, $Operator, $Value)
选择
对于选择所有列(*),您可以调用 get()、first()、json() 或 toArray() 方法;
$Users = Users::get(); // return all users
您可以指定从表中返回的列。
Users::select('name')->get(); // return all users name // or Users::select(['name','id'])->get(); // return all users name and id
更新
更新方法接受一个包含更新到表中的键 => 值的数组
Users::update([ 'name' => 'milad', 'app_id' => 5 ])->exec(); // will return count of row affected
您可以使用条件来更新行
Users::update(['name' => 'milad',]) ->where('id', '=', 2) ->exec(); // will return count of row affected
插入
插入方法接受一个键 => 值的数组用于插入
Users::insert([ 'name' => 'milad', 'app_id' => 5 ])->exec(); // will return count of row affected
删除
删除方法将删除所选行。
Users::delete()->exec(); // delete all rows // or Users::delete()->where('id', '=', 5)->exec(); // delete user with id = 5