devonblzx / wp-eloquent
WordPress 的 Eloquent ORM,基于 tareq1988/wp-eloquent 更新分支
dev-master
2017-01-18 21:11 UTC
Requires
- illuminate/database: 5.0.*
- illuminate/pagination: 5.0.*
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_status
和 post_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-bar
或query-monitor
的插件来获取 SQL 查询报告。 - 它不会创建任何额外的 MySQL 连接
最低要求
- PHP 5.3.0
- WordPress 3.6+