niroee/easy-orm

简单轻量级的PHP ORM

dev-main 2023-02-04 19:25 UTC

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