2015-11-05 3 views
3

Я делаю проект laravel и есть таблица «lead», содержащая поля lead_id, lead_name, email. В моем проекте есть опция для редактирования информации. Когда я пытаюсь редактировать информацию о ведущем, может возникнуть случай, когда я не хочу редактировать адрес электронной почты. Мой код,Обновить информацию о пользователе в laravel 5

LeadRequest.php

public function rules() 
{ 
    return [ 
     'lead_name' => 'required', 
     'email' => 'required|email|unique:lead', 
    ]; } 

Я представил электронную почту, как уникальный так, когда я пытаюсь обновить профиль без изменения адреса электронной почты, то он показывает мне сообщение об ошибке, как " адрес электронной почты уже принят ».

Так что я попытался применить правило проверки Laravel «принуждать Уникальное правило игнорировать Данный идентификатор:» следующим образом,

'email' => 'unique:lead,email_address,'.$lead.'lead_id', 

Но как обеспечить значение $ свинца. Отображение сообщения как «неопределенная переменная». Мой код контроллера, как показано ниже,

LeadController.php

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

    $lead = Lead::findOrFail($id); 
    $lead->update($request->all()); 
    return redirect('lead'); 
} 

Пожалуйста, дайте какие-либо предложения.

+0

Не могли бы вы передать значение как параметр функции 'rules'? – Amarnasan

+1

Опубликовать код вашего метода обновления вашего контроллера –

+0

Я обновил код, предоставляющий метод обновления контроллера – Amarja

ответ

0

Посмотрите на мой рабочий пример:

public function rulesUserEdit($id = NULL) 
{ 
    return [ 
     'name' => 'required|min:3', 
     'oib' => 'required|min:11|max:11|unique:users' . ($id ? ",oib,$id" : ''), 
    ]; 
} 

он должен работать для вас. Вы должны передать идентификатор пользователя в аргументе при обновлении пользователя. Когда пользователь создает pass NULL или ничего, потому что NULL является аргументом по умолчанию.

1

Спасибо за вашу поддержку, я попробовал follwing код в LeadRequest.php и это работает для меня,

public function rules() 
{ 
    return [ 
     'lead_name' => 'required', 
     'email' => 'required|email|unique:lead,email,NULL,id,lead_id,'.Auth::user()->id,]; } 

Вы можете передать ссылку, http://laravel.io/forum/03-11-2014-validation-unique-to-user