Laravel редактировать данные пользователя, но показывать ошибку ввода электронной почты. Письмо уже занято - PullRequest
0 голосов
/ 07 апреля 2020

Я добавляю и редактирую в админ панели, пользователи тоже удаляют. Все работает, кроме редактирования. При редактировании он просит каждый раз менять электронную почту. Но я не знаю, как заставить это работать. Например, я хочу изменить только имя или пароль. И так, что нет необходимости менять адрес электронной почты.

Эта функция обновления и редактирования `` 1003 *

public function edit($id)
{
    $object = Specialist::findOrFail($id);
    return view('Backend.specialists.edit', compact('object'));
}

/**
 * Update the specified resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \App\Specialist  $specialist
 * @return \Illuminate\Http\Response
 */
public function update(Request $request, $id)
{
    $data = $request->validate([
        'name' => 'required|string',
        'email' => 'required|email|unique:users',
        'password' => 'required|string|min:8|confirmed'
    ]);

    $object = Specialist::findOrFail($id);
    $object->groups = 3;
    $object->password = \Hash::make($data['password']);
    $object->fill(request()->except('password'));

    $object->save();

    return redirect()->route('specialists.index');
}

`

Ошибка ввода изображения

1 Ответ

0 голосов
/ 07 апреля 2020

Вы пытаетесь записать адрес электронной почты в таблицу, в которой все еще существует то же значение (как и в той же записи).

Я не могу проверить право проверки, но пытаюсь использовать игнорировать правило :

/**
 * Update the specified resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \App\Specialist  $specialist
 * @return \Illuminate\Http\Response
 */
public function update(Request $request, $id)
{
    $object = Specialist::findOrFail($id);

    $data = $request->validate([
        'name' => 'required|string',
        'email' => [
            'required',
            Rule::unique('users')->ignore($object->id),
        ],
        'password' => 'required|string|min:8|confirmed'
    ]);

    $object->groups = 3;
    $object->password = \Hash::make($data['password']);
    $object->fill(request()->except('password'));

    $object->save();

    return redirect()->route('specialists.index');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...