tishotm / eloquent-ci-relations
不区分大小写的Eloquent关系
v1.4.0
2024-04-06 15:34 UTC
Requires
- illuminate/database: ^5.5.33 || ^6.20.26 || ^7.30.4 || ^8.40.0 || ^9.0 || ^10.0 || ^11.0
Requires (Dev)
- php: ~7.1 || ~8.0
- mockery/mockery: ~1.0
- phpunit/phpunit: ~6.0 || ~7.0 || ~8.0
This package is auto-updated.
Last update: 2024-09-06 16:46:41 UTC
README
使用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 }