fs-ap / laravel-relationship-test
增强Laravel中模型与项目之间关系的单元测试
1.1
2016-04-22 14:51 UTC
Requires
- php: >=5.5.9
- illuminate/database: ~5.0
- minime/annotations: ~2.0
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-20 18:33:54 UTC
README
==================
增强Laravel中模型与项目之间关系的单元测试
Composer安装
{
"require-dev": {
"fs-ap/laravel-relationship-test": "~1.0"
}
}
或
通过终端: composer require --dev fs-ap/laravel-relationship-test:~1.0
用法
<?php use Fs\Relationship; class AuthorModelTest extends PHPUnit_Framework_TestCase { /** * Check if the class in first param has a method that defines relation of type Relationship::HAS_MANY * and the second class has a relation of type Relationship::BELONGS_TO */ public function testAuthorCanHaveManyComments() { Relationship::check(Author::class, Relationship::HAS_MANY, Comment::class)); } }
说明
此功能通过定义关系的方法上的 @return 注释来检查模型之间的双向关系
<?php class Author extends Illuminate\Database\Eloquent\Model { /** * @return Illuminate\Database\Eloquent\Relations\HasMany */ public function comments() { return \$this->hasMany(Comment::class); } }
和
<?php class Comment extends Illuminate\Database\Eloquent\Model { /** * @return Illuminate\Database\Eloquent\Relations\BelongsTo */ public function author() { return \$this->belongsTo(Author::class); } }
双向检查映射
禁用双向检查
<?php Relationship::check(Author::class, Relationship::HAS_MANY, Comment::class, true);
此检查仅当 Author 有许多独立的 Comment 时才会进行,无论是否在 Comment 类中定义了关系