Как получить идентификатор Когда используется неявная привязка модели маршрута, она мне нужна в уникальной проверке - PullRequest
0 голосов
/ 06 июня 2018

// в разделе валидации поле "псевдоним" должно быть уникальным, поэтому мне нужен NursingHome идентификатор объекта (первичный ключ), чтобы принудительно выполнить проверку, чтобы не проверять этот идентификатор.

Я проверил егос $nursinghome->getKey() методом, но безуспешно.

public function update(Request $request, NursingHome $nursinghome)
{
 $request->validate([
   'name' => 'required|string|max:255',
   'address' => 'nullable|string',
   'alias' => 'required|string|unique:nursing_home,'.$nursinghome->id,

]);

    $data = $request->all();
    $data['updated_by'] = Auth::guard('api')->id();
    $nursinghome->update($data);

    return response()->json($nursinghome, 200);
}

1 Ответ

0 голосов
/ 06 июня 2018

В laravel github есть известная проблема, заключающаяся в том, что если ваша модель имеет два слова, например NursingHome, она не вводится в контроллер:

    public function update(Request $request, $id){

        $nursinghome = NursingHome::find($id); //now you will get $nursinghome->id

        $request->validate([
            'name' => 'required|string|max:255',
            'address' => 'nullable|string',
            'alias' => 'required|string|unique:nursing_home,'.$nursinghome->id,
        ]);

        $data = $request->all();
        $data['updated_by'] = Auth::guard('api')->id();
        $nursinghome->update($data);

        return response()->json($nursinghome, 200);
    }

Если ваша модельимея два или более слов, вы должны использовать только маленькие буквы.

...