Проверка Laravel уникальна в сочетании с закрытием - PullRequest
0 голосов
/ 21 июня 2019

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

Поэтому мне нужно ограничить сравниваемые строки, используя закрытие где.Кроме того, идентификатор фактической строки следует игнорировать.Я не могу заставить его работать.Я попытался с «ignore», «ignoreModel» и с дополнительным условием where внутри замыкания.

Как использовать «старый» способ проверки нотации с подзапросом?Я использую laravel 5.6.

Как-то так с where

    'bezeichnung' => 'required|unique:customers,bezeichnung,'.$Kunde,



    $rules = [
              'bezeichnung' => [
                'required',
                Rule::unique('projects')->where(function ($query) use($Data){
                    return $query
                        ->where('kunde', $Data['kunde'])
                    ;
                })->ignoreModel($project)
              ]
    ];


$rules = [
          'bezeichnung' => [
            'required',
            Rule::unique('projects')->where(function ($query) use($Data){
                return $query
                    ->where('kunde', $Data['kunde'])
                ;
            })->ignore($Projekt)
          ]
];

$rules = [
          'bezeichnung' => [
            'required',
            Rule::unique('projects')->where(function ($query) use($Data,$Projekt){
                return $query
                    ->where('kunde', $Data['kunde'])
                    ->where('id','<>',$Projekt)
                ;
            })
          ]

];
...