tjbp/eloquent-joins

支持 Laravel Eloquent ORM 关系级别的连接。

dev-master 2015-12-28 16:47 UTC

This package is auto-updated.

Last update: 2024-09-15 21:21:32 UTC


README

StyleCI Build Status Total Downloads Latest Stable Version Latest Unstable Version License

此包允许您简单地调用 $model->join($relation) 来在您的 Laravel Eloquent 关系表上执行连接。列将自动选择,并且连接的记录将作为模型在结果集合中重新激活。Laravel 的 Eloquent 通常支持连接,但内部调用底层查询构建器,因此期望以表名和连接键作为参数。

安装

Eloquent Joins 可通过 Packagist 使用 Composer 安装

用法

使用特性

在模型中使用 EloquentJoins\ModelTrait

namespace App;

use EloquentJoins\ModelTrait as EloquentJoinsModelTrait;

class User
{
    use EloquentJoinsModelTrait;

    protected $table = 'users';

    public function orders()
    {
        return $this->hasMany('\App\Order');
    }
}

$users = User::join('orders')->get();

在上面的示例中,$users 将包含所有具有相应 Order 模型的 User 模型集合(因为我们执行了内部连接)。每个对应的 Order 模型都可以在 User 模型的 $orders 属性中找到(通常这会包含一个具有匹配外键的模型集合)。

您可以将多个 join() 调用串联起来,还可以使用底层查询对象上通常可用的其他类型的连接(joinWhere()leftJoin() 等)。

许可证

Eloquent Joins 是免费软件,受 GPL3 许可证 的许可。这允许您将 Eloquent Joins 用于商业目的,但任何衍生作品(对代码的改编)也必须以相同的许可证发布。