do6po / tentacles
为 Eloquent 的高效 tentacles
v1.0.3
2021-02-03 08:44 UTC
Requires
- php: >=5.5.0
- illuminate/database: ^5.5|^6|^7|^8
- illuminate/support: ^5.5|^6|^7|^8
This package is auto-updated.
Last update: 2024-09-29 05:35:51 UTC
README
这是从以下包派生的:https://github.com/greabock/tentacles (https://packagist.org.cn/packages/greabock/tentacles) eloquent 模型的 Monkey-patching
Composer
"do6po/tentacles": "dev-master"
user-model...
<? namespace App\User\Models; use Illuminate\Database\Eloquent\Model; use Do6po\Tentacles\EloquentTentacle; User extends Model { use EloquentTentacle; }
ServiceProvider
<?php namespace App\Article\Providers; use Illuminate\Support\ServiceProvider; use App\Article\Models\Article; use App\User\Models\User; use Illuminate\Database\Eloquent\Model; class ArticleProvider extends ServiceProvider { public function register() { #.. } public function boot() { User::addExternalMethod('articles', function() { return $this->hasMany(Article::class); }); User::addExternalMethod('getFullnameAttribute', function() { return $this->first_name . ' ' . $this->last_name; }); } }
现在我们可以这样做
$user = User::with('articles')->first();
$fullname = $user->fullname;