我正在尝试使用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".
我该怎么办?
答案 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