-
Notifications
You must be signed in to change notification settings - Fork 0
/
AttributeOption.php
executable file
·77 lines (68 loc) · 1.66 KB
/
AttributeOption.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
namespace Eav;
use Eav\Attribute\Option\Collection;
use Illuminate\Database\Eloquent\Model;
class AttributeOption extends Model
{
/**
* @{inheriteDoc}
*/
protected $primaryKey = 'option_id';
/**
* @{inheriteDoc}
*/
public $timestamps = false;
/**
* @{inheriteDoc}
*/
protected $fillable = [
'attribute_id', 'label', 'value'
];
/**
* Add options for the attribute.
*
* @param Attribute $attribute
* @param array $options
*
* @return void
*/
public static function add(Attribute $attribute, array $options)
{
foreach ($options as $value => $label) {
$option = static::create([
'attribute_id' => $attribute->attribute_id,
'label' => $label,
'value' => $value
]);
}
}
/**
* Remove options for the attribute.
*
* @param Attribute $attribute
* @param array $options
*
* @return void
*/
public static function remove(Attribute $attribute, array $options)
{
$instance = new static;
foreach ($options as $value => $label) {
$instance->where([
'attribute_id' => $attribute->attribute_id,
'label' => $label,
'value' => $value
])->delete();
}
}
/**
* Create a new Eloquent Collection instance.
*
* @param array $models
* @return \Illuminate\Database\Eloquent\Collection
*/
public function newCollection(array $models = [])
{
return new Collection($models);
}
}