我使用dimsav/laravel-translatable来制作api可翻译的。
我有三个区域设置fa
,en
和ar
,并且有一个WarehouseType
模型,如下所示:
class WarehouseType extends Model
{
use \Dimsav\Translatable\Translatable;
protected $fillable = ['name'];
public $translatedAttributes = ['title'];
}
另一方面,我创建了WarehouseTypeTranslation
,如下所示:
class WarehouseTypeTranslation extends Model
{
protected $fillable = ['title'];
public $timestamps = FALSE;
}
现在我想验证传入的请求。为此我写了FormRequest
这样:
public function rules()
{
switch ($this->method()) {
case 'POST': {
return [
'name' => 'required|unique:warehouse_types',
'*.title' => 'required|unique:warehouse_type_translations,title',
];
}
}
}
如您所见,title
字段在数据库中必须是唯一的。但我希望只有fa[title]
是唯一的,并在数据库中检查。
根据我写的那些代码,我总是得到这个错误:
{
"success": false,
"message": "422 Unprocessable Entity",
"errors": {
"name.title": [
"name.title is required."
]
},
"status_code": 422
}