我正在尝试将所有首字母作为大写字母的数据添加到db中。但这显示了错误语法错误。
意外的',',期望']',,,,,,,,,,,,,,,,,,,,
模型
protected $fillable = [
'category_name',
'category_description',
'category_slug',
'category_image'
];
public function setFirstNameAttribute($value)
{
$this->attributes[
'category_name',
'category_description',
'category_slug',
'category_image'
] = strtoupper($value);
}
答案 0 :(得分:0)
尝试一下。
public function setCategoryNameAttribute($value){
$this->attributes['category_name'] = strtoupper($value);
}
或
public function setCategoryNameAttribute($value)
{
return strtoupper($value);
}
如果要处理所有字段,则可能已经定义了所有功能。
答案 1 :(得分:0)
您使用setFirstNameAttribute($value)
增变函数是错误的。 Mustator仅适用于一个属性。因此,您必须为每个属性创建多个变量。
可能的答案。如果您要突变category_name
。
public function setCategoryNameAttribute($value)
{
$this->category_name = strtoupper($value);
}
如果您要突变category_description
public function setCategoryDescriptionAttribute($value)
{
$this->category_description = strtoupper($value);
}
同样,您需要为所有其他属性定义多个变体。
编辑
如果您只想大写单词的首字母,请使用title_case()
而不是strtoupper()
public function setCategoryDescriptionAttribute($value)
{
$this->category_description = title_case($value);
}
答案 2 :(得分:-1)
$this->attributes[
'category_name',
'category_description',
'category_slug',
'category_image'
] = strtoupper($value);
您不能像这样一次设置多个数组值。您必须单独或循环设置它们:
public function setFirstNameAttribute($value)
{
$attribute_names = [
'category_name',
'category_description',
'category_slug',
'category_image',
];
foreach ($attribute_names as $attribute_name) {
$this->attributes[$attribute_name] = strtoupper($value);
}
}