1 | <?php |
||
11 | class RelationFactory implements RelationAbstractorFactoryContract |
||
12 | { |
||
13 | const SELECT = 'select'; |
||
14 | const SELECT_MULTIPLE = 'select-multiple'; |
||
15 | const SELECT_MULTIPLE_MANY_TO_MANY = 'select-multiple-many-to-many'; |
||
16 | const CHECKLIST = 'checklist'; |
||
17 | const MINI_CRUD = 'mini-crud'; |
||
18 | const MINI_CRUD_SINGLE = 'mini-crud-single'; |
||
19 | const MINI_CRUD_POLYMORPHIC = 'mini-crud-polymorphic'; |
||
20 | const TRANSLATION = 'translation'; |
||
21 | |||
22 | protected $eloquentTypeToRelationType = [ |
||
23 | 'Illuminate\Database\Eloquent\Relations\BelongsTo' => self::SELECT, |
||
24 | 'Illuminate\Database\Eloquent\Relations\BelongsToMany' => self::SELECT_MULTIPLE_MANY_TO_MANY, |
||
25 | 'Illuminate\Database\Eloquent\Relations\HasMany' => self::SELECT_MULTIPLE, |
||
26 | 'Illuminate\Database\Eloquent\Relations\HasManyTrough' => self::SELECT_MULTIPLE, |
||
27 | 'Illuminate\Database\Eloquent\Relations\HasOne' => self::SELECT, |
||
28 | 'Illuminate\Database\Eloquent\Relations\HasOneOrMany' => self::SELECT_MULTIPLE, |
||
29 | 'Illuminate\Database\Eloquent\Relations\MorphMany' => self::MINI_CRUD_POLYMORPHIC, |
||
30 | 'Illuminate\Database\Eloquent\Relations\MorphOne' => self::MINI_CRUD_SINGLE, |
||
31 | ]; |
||
32 | |||
33 | protected $typesMap = [ |
||
34 | self::SELECT => 'Anavel\Crud\Abstractor\Eloquent\Relation\Select', |
||
35 | self::SELECT_MULTIPLE => 'Anavel\Crud\Abstractor\Eloquent\Relation\SelectMultiple', |
||
36 | self::SELECT_MULTIPLE_MANY_TO_MANY => 'Anavel\Crud\Abstractor\Eloquent\Relation\SelectMultipleManyToMany', |
||
37 | self::CHECKLIST => 'Anavel\Crud\Abstractor\Eloquent\Relation\Checklist', |
||
38 | self::MINI_CRUD => 'Anavel\Crud\Abstractor\Eloquent\Relation\MiniCrud', |
||
39 | self::MINI_CRUD_SINGLE => 'Anavel\Crud\Abstractor\Eloquent\Relation\MiniCrudSingle', |
||
40 | self::MINI_CRUD_POLYMORPHIC => 'Anavel\Crud\Abstractor\Eloquent\Relation\MiniCrudPolymorphic', |
||
41 | self::TRANSLATION => 'Anavel\Crud\Abstractor\Eloquent\Relation\Translation', |
||
42 | ]; |
||
43 | |||
44 | protected $modelManager; |
||
45 | protected $fieldFactory; |
||
46 | |||
47 | /** |
||
48 | * @var EloquentModel |
||
49 | */ |
||
50 | protected $model; |
||
51 | protected $config; |
||
52 | |||
53 | 4 | public function __construct(ModelManager $modelManager, FieldFactoryContract $fieldFactory) |
|
59 | |||
60 | 4 | public function setModel($model) |
|
66 | |||
67 | 1 | public function setConfig(array $config) |
|
73 | |||
74 | 2 | public function get($name) |
|
110 | } |
||
111 |