devonblzx/wp-eloquent

WordPress 的 Eloquent ORM,基于 tareq1988/wp-eloquent 更新分支

dev-master 2017-01-18 21:11 UTC

This package is not auto-updated.

Last update: 2024-09-28 19:45:17 UTC


README

这是一个库包,用于在 WordPress 中使用 Laravel 的 Eloquent ORM

这是一个从 tareq1988/wp-eloquent 更新的分支,我打算维护和增强。

包安装

要安装此包,请编辑您的 composer.json 文件

{
    "require": {
        "devonblzx/wp-eloquent": "dev-master"
    }
}

现在运行

$ composer install

使用示例

基本用法

$db = \WeDevs\ORM\Eloquent\Database::instance();

var_dump( $db->table('users')->find(1) );
var_dump( $db->select('SELECT * FROM wp_users WHERE id = ?', [1]) );
var_dump( $db->table('users')->where('user_login', 'john')->first() );

// OR with DB facade
use \WeDevs\ORM\Eloquent\Facades\DB;

var_dump( DB::table('users')->find(1) );
var_dump( DB::select('SELECT * FROM wp_users WHERE id = ?', [1]) );
var_dump( DB::table('users')->where('user_login', 'john')->first() );

从表中检索所有行

$users = $db->table('users')->get();

foreach ($users as $user) {
    var_dump($user->display_name);
}

在这里,users 是表名,不带前缀。前缀将自动应用。

其他示例

编写模型

use \WeDevs\ORM\Eloquent\Model as Model;

class Employee extends Model {

}

var_dump( Employee::all()->toArray() ); // gets all employees
var_dump( Employee::find(1) ); // find employee with ID 1

类名 Employee 将被转换为 PREFIX_employees 表以运行查询。但通常,您可以覆盖表名。

WordPress 内置模型

  • 帖子
  • 评论
  • 帖子元数据
  • 用户
  • 用户元数据
use WeDevs\ORM\WP\Post as Post;

var_dump( Post::all() ); //returns only posts with WordPress post_type "post"

通过 post_statuspost_type 过滤 Post

use WeDevs\ORM\WP\Post as Post;
var_dump(Post::type('page')->get()->toArray()); // get pages
var_dump(Post::status('publish')->get()->toArray()); // get posts with publish status
var_dump(Post::type('page')->status('publish')->get()->toArray()); // get pages with publish status

工作原理

  • Eloquent 主要在此用作查询构建器
  • 使用 WPDB 运行由 Eloquent 构建的查询
  • 因此,我们可以利用如 debug-barquery-monitor 的插件来获取 SQL 查询报告。
  • 它不会创建任何额外的 MySQL 连接

最低要求

  • PHP 5.3.0
  • WordPress 3.6+

作者

Tareq Hasan