tjventurini/get-relationship-key

特性与样本配置,用于通过配置管理模型关系。

此软件包的规范存储库似乎已丢失,因此软件包已被冻结。

v0.0.4 2020-02-08 15:30 UTC

This package is auto-updated.

Last update: 2020-10-08 16:56:29 UTC


README

此软件包包含一个特性和样本配置,用于通过配置管理您的模型关系。理念是您不需要为每个关系在模型上添加方法,而是创建特性能将这些方法添加到模型中。这样,您只需为每个模型创建一个特性,而不必为每个关系创建。

安装

要安装此软件包,您只需通过 composer 要求它。

composer require tjventurini/get-relationship-key

使用

在您的模型上包含该特性。

use Tjventurini\GetRelationshipKey\GetRelationshipKey;

...

class User extends Authenticatable
{
    ...
    use GetRelationshipKey;
}

然后,您可以通过调用 $this->getRelationshipKey() 来获取模型类名的驼峰表示形式。以下是一些示例。

User => user
OrderItem => order_item
SimpleXML => simple_xml

现在,您不再需要在模型上直接添加关系,而是创建将为您处理此操作的特性。查看特性 Tjventurini\GetRelationshipKey\BelongsToUserTjventurini\GetRelationshipKey\BelongsToManyUsers,了解您如何自己编写这样的特性。

配置

要配置此软件包附带使用的 BelongsToUserBelongsToManyUsers 表,只需将以下内容添加到您的 config/database.php 并相应地添加您的值。

    /*
     |--------------------------------------------------------------------------
     | Relationships
     |--------------------------------------------------------------------------
     |
     | In this section you will find all eloquent relationships and the values
     | to configure them.
     |
     */

    'tables' => [
        'user' => 'users',

        // pivot tables
        // eg.:
        // 'user_page' => 'user_page',
        // 'page_user' => 'page_user',
    ],

    'models' => [
        'user' => \App\User::class,
    ],

    'foreign_keys' => [
        'user' => 'user_id',
    ],

现在,您应该能够在需要的地方直接添加模型上的关系特性,而不是在多个模型上添加相同的方法。