Laravel, как проверить с уникальным типом полей JSON? - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть конечная точка POST на моем Laravel 5.7 API и Mariadb 10.3, я использовал почтальон для проверки моего маршрута, и вот проблема.Я хочу отправить массив объектов того же типа, например:

{  
   "Shops":[  
   {
     "name": {
        "en":"ShopEng",
        "es":"ShopESP"
      },
    "code": "0891"
   }
   ]
}

В моей базе данных. У меня есть таблица магазинов и поле Имя как JSON-тип.

{"en":"TestEng","es":"TestESP"}

По моему запросу.Я также пытался с простой, но не работает.

public function rules()
    {
        return array(
            'Shops'         => 'required|array',
            'Shops.*.name.en' => 'required|unique:shops,name->en',
            'Shops.*.name.es' => 'required|unique:shops,name->es',
            'Shops.*.code'        => 'required|integer'
        );

    }

С сообщением.

"message": "Method Illuminate\\Validation\\Validator::validateUnique,shops,name>en does not exist.",
"exception": "BadMethodCallException",
"file": "/var/www/html/vendor/laravel/framework/src/Illuminate/Validation/Validator.php",

1 Ответ

0 голосов
/ 13 февраля 2019

Второй параметр , записанный в уникальном правиле проверки , относится к столбцу таблицы базы данных, где будет проверено уникальное правило, боюсь, синтаксис, который вы там написали, недопустим.

Я предполагаю, что вам придется создать пользовательское правило проверки для обработки этого конкретного случая.

...