mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-17 17:47:13 +00:00
Implement new config to specify return type of custom relations (#1300)
* Implement new config to specify return type of custom relations * Apply suggestions from code review Co-authored-by: Markus Podar <[email protected]> * add test for morphed * fix test output * add info about how to add custom relationships * fix wording Co-authored-by: Markus Podar <[email protected]>
This commit is contained in:
@@ -97,4 +97,14 @@ class Simple extends Model
|
||||
{
|
||||
return $this->testToManyRelation(Simple::class);
|
||||
}
|
||||
|
||||
public function relationSampleToAnyRelationType()
|
||||
{
|
||||
return $this->testToAnyRelation(Simple::class);
|
||||
}
|
||||
|
||||
public function relationSampleToAnyMorphedRelationType()
|
||||
{
|
||||
return $this->testToAnyMorphedRelation(Simple::class);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ namespace Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Relations;
|
||||
|
||||
use Barryvdh\LaravelIdeHelper\Console\ModelsCommand;
|
||||
use Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\AbstractModelsCommand;
|
||||
use Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Relations\Types\SampleToAnyRelationType;
|
||||
use Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Relations\Types\SampleToManyRelationType;
|
||||
use Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Relations\Types\SampleToOneRelationType;
|
||||
use Illuminate\Support\Facades\Config;
|
||||
@@ -19,6 +20,13 @@ class Test extends AbstractModelsCommand
|
||||
Config::set('ide-helper.additional_relation_types', [
|
||||
'testToOneRelation' => SampleToOneRelationType::class,
|
||||
'testToManyRelation' => SampleToManyRelationType::class,
|
||||
'testToAnyRelation' => SampleToAnyRelationType::class,
|
||||
'testToAnyMorphedRelation' => SampleToAnyMorphedRelationType::class,
|
||||
]);
|
||||
|
||||
Config::set('ide-helper.additional_relation_return_types', [
|
||||
'testToAnyRelation' => 'many',
|
||||
'testToAnyMorphedRelation' => 'morphTo',
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Relations\Traits;
|
||||
|
||||
use Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Relations\Types\SampleToAnyRelationType;
|
||||
use Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Relations\Types\SampleToAnyMorphedRelationType;
|
||||
use Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Relations\Types\SampleToManyRelationType;
|
||||
use Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Relations\Types\SampleToOneRelationType;
|
||||
|
||||
@@ -20,4 +22,16 @@ trait HasTestRelations
|
||||
$instance = $this->newRelatedInstance($related);
|
||||
return new SampleToManyRelationType($instance->newQuery(), $this);
|
||||
}
|
||||
|
||||
public function testToAnyRelation($related)
|
||||
{
|
||||
$instance = $this->newRelatedInstance($related);
|
||||
return new SampleToAnyRelationType($instance->newQuery(), $this);
|
||||
}
|
||||
|
||||
public function testToAnyMorphedRelation($related)
|
||||
{
|
||||
$instance = $this->newRelatedInstance($related);
|
||||
return new SampleToAnyMorphedRelationType($instance->newQuery(), $this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Relations\Types;
|
||||
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
||||
|
||||
class SampleToAnyMorphedRelationType extends Relation
|
||||
{
|
||||
public function addConstraints()
|
||||
{
|
||||
// Fake
|
||||
}
|
||||
|
||||
public function addEagerConstraints(array $models)
|
||||
{
|
||||
// Fake
|
||||
}
|
||||
|
||||
public function initRelation(array $models, $relation)
|
||||
{
|
||||
// Fake
|
||||
}
|
||||
|
||||
public function match(array $models, Collection $results, $relation)
|
||||
{
|
||||
// Fake
|
||||
}
|
||||
|
||||
public function getResults()
|
||||
{
|
||||
// Fake
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Relations\Types;
|
||||
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
||||
|
||||
class SampleToAnyRelationType extends Relation
|
||||
{
|
||||
public function addConstraints()
|
||||
{
|
||||
// Fake
|
||||
}
|
||||
|
||||
public function addEagerConstraints(array $models)
|
||||
{
|
||||
// Fake
|
||||
}
|
||||
|
||||
public function initRelation(array $models, $relation)
|
||||
{
|
||||
// Fake
|
||||
}
|
||||
|
||||
public function match(array $models, Collection $results, $relation)
|
||||
{
|
||||
// Fake
|
||||
}
|
||||
|
||||
public function getResults()
|
||||
{
|
||||
// Fake
|
||||
}
|
||||
}
|
||||
@@ -94,6 +94,9 @@ use Illuminate\Database\Eloquent\Relations\MorphToMany;
|
||||
* @property-read int|null $relation_morphed_by_many_count
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|Simple[] $relationSampleRelationType
|
||||
* @property-read int|null $relation_sample_relation_type_count
|
||||
* @property-read Model|\Eloquent $relationSampleToAnyMorphedRelationType
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|Simple[] $relationSampleToAnyRelationType
|
||||
* @property-read int|null $relation_sample_to_any_relation_type_count
|
||||
* @property-read Simple $relationSampleToManyRelationType
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Simple newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Simple newQuery()
|
||||
@@ -182,4 +185,14 @@ class Simple extends Model
|
||||
{
|
||||
return $this->testToManyRelation(Simple::class);
|
||||
}
|
||||
|
||||
public function relationSampleToAnyRelationType()
|
||||
{
|
||||
return $this->testToAnyRelation(Simple::class);
|
||||
}
|
||||
|
||||
public function relationSampleToAnyMorphedRelationType()
|
||||
{
|
||||
return $this->testToAnyMorphedRelation(Simple::class);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user