zing/laravel-eloquent-relationships
最新稳定版本:2.3.0
Composer 安装命令:
composer require zing/laravel-eloquent-relationships
包简介
More eloquent relationships for Laravel
README 文档
README
Requirements
Require Laravel Eloquent Relationships using Composer:
composer require zing/laravel-eloquent-relationships
Usage
BelongsToOne
BelongsToOne is based on BelongsToMany
Difference:
- returns related model instead of collection of models
- returns
nullinstead of empty collection of models if the relationship does not exist - supports return default related model in case the relationship does not exist
Example:
<?php use Illuminate\Database\Eloquent\Model; use Zing\LaravelEloquentRelationships\HasMoreRelationships; use Zing\LaravelEloquentRelationships\Relations\BelongsToOne; use Zing\LaravelEloquentRelationships\Tests\Models\User; class Group extends Model { use HasMoreRelationships; public function leader(): BelongsToOne { return $this->belongsToOne(User::class) ->wherePivot('status', 1) ->withDefault(function (User $user, self $group): void { $user->name = 'leader for ' . $group->name; }); } }
MorphToOne
MorphToOne is based on MorphToMany
Difference:
- returns related model instead of collection of models
- returns
nullinstead of empty collection of models if the relationship does not exist - supports return default related model in case the relationship does not exist
Example:
<?php use Illuminate\Database\Eloquent\Model; use Zing\LaravelEloquentRelationships\HasMoreRelationships; use Zing\LaravelEloquentRelationships\Relations\MorphToOne; use Zing\LaravelEloquentRelationships\Tests\Models\Product; class Image extends Model { use HasMoreRelationships; public function bestProduct(): MorphToOne { return $this->morphedByOne(Product::class, 'imageable', 'model_has_images'); } }
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Zing\LaravelEloquentRelationships\HasMoreRelationships; use Zing\LaravelEloquentRelationships\Relations\MorphToOne; use Zing\LaravelEloquentRelationships\Tests\Models\Image; class Product extends Model { use HasMoreRelationships; public function cover(): MorphToOne { return $this->morphToOne(Image::class, 'imageable', 'model_has_images')->withDefault([ 'url' => 'https://example.com/default.png', ]); } }
License
Laravel Eloquent Relationships is an open-sourced software licensed under the MIT license.
统计信息
- 总下载量: 27.76k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 8
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-11-25