如何使用Laravel Rinvex属性?

时间:2018-09-23 10:12:56

标签: laravel laravel-5 attributes

我正在尝试使用https://github.com/rinvex/attributes,但不知道如何使用。 文档对我来说不清楚,我需要帮助。

安装软件包后,我接下来要做的事情:

我有要归因的\ App \ Models \ Product类。 所以我放入模型

use Rinvex\Attributes\Traits\Attributable;

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

/***/

在AppServiceProvider的boot()中:

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'],
]);

在数据库中,我看到了attributes_entries和属性表中添加的条目。

但是当我尝试致电

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

我该怎么办?

1 个答案:

答案 0 :(得分:1)

您是否注册了 varchar 类型?如文档中所述, 默认情况下,Rinvex属性不注册任何类型(请参见https://github.com/rinvex/laravel-attributes#register-your-types

所以我建议您在服务提供商的注册方法中添加以下代码:

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

别忘了加入此类

use Rinvex\Attributes\Models\Attribute