как использовать атрибуты Laravel Rinvex? - PullRequest
0 голосов
/ 23 сентября 2018

Я пытаюсь использовать https://github.com/rinvex/attributes, и не могу понять, как.Документы мне не понятны, и мне нужна помощь.

После установки пакета я сделал следующее:

У меня есть класс \ App \ Models \ Product, который я хочу сделать атрибутивным.Поэтому я вставил в модель

use Rinvex\Attributes\Traits\Attributable;

class Product extends Model
{
    use CrudTrait;
    use Sluggable;
    use Attributable;

/***/

В загрузчике AppServiceProvider ():

app('rinvex.attributes.entities')->push(App\Models\Product::class);

Далее - как в документации - создание атрибута в консоли Tinker так:

app('rinvex.attributes.attribute')->create([
    'slug' => 'size',
    'type' => 'varchar',
    'name' => 'Product Size',
    'entities' => ['App\Models\Product'],
]);

В БД я вижу добавленные записи в таблицах attribute_entries и attribute.

Но когда я пытаюсь вызвать

$product->size = 50;
$product->save(); - got "not found field in Model".

Что я делаю не так?

1 Ответ

0 голосов
/ 06 ноября 2018

Вы зарегистрировали тип varchar ?Как указано в документации, Rinvex Attributes НЕ регистрирует никакие типы по умолчанию (см. https://github.com/rinvex/laravel-attributes#register-your-types)

. Поэтому я предлагаю вам добавить этот код в метод регистрации вашего поставщика услуг:

    Attribute::typeMap([
        'varchar' => \Rinvex\Attributes\Models\Type\Varchar::class,
    ]);

Не забудьте включить этот класс

use Rinvex\Attributes\Models\Attribute
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...