tishotm/eloquent-ci-relations

不区分大小写的Eloquent关系

v1.4.0 2024-04-06 15:34 UTC

README

Build Status Version Total Downloads License

使用Eloquent在默认情况下,如果不区分大小写比较的数据库中,如果外键设置为字符串并且大小写不同,则可能会返回不完整的项目集合。在延迟加载的关系中,Eloquent构建一个父模型字典并将相关模型通过它们的键关联起来。PHP是区分大小写的,因此如果键不同,则某些相关模型将不会返回。此包简单地将字典键转换为小写。

示例

项目表

标签表

item_tag表

Item::with('tags')->find('aaa');

相关的标签只会包括"tag 2",即使数据库比较是不区分大小写的,并且返回的查询数据包括"tag 1"。

不区分大小写的关系:相关的标签将包括"tag 1"和"tag 2"。

要求

  • illuminate/database 5.5.33及更高版本,5.6.*,5.7.*,5.8.*,6.20.26及更高版本,7.30.4,8.40.0及更高版本

安装

composer require tishotm/eloquent-ci-relations

用法

use Illuminate\Database\Eloquent\Model;

class Item extends Model
{
    use \TishoTM\Eloquent\Concerns\HasCiRelationships;

    // ... relations
}

许可

MIT许可.