Обновление пользователя на той же странице laravel 5

Я новичок в рамках, и у меня есть вопрос.
Я произвел авторизацию при входе в систему, чтобы получить доступ, и когда я захожу на страницу своего профиля, я могу просмотреть свои данные и изменить все на той же странице.
Мне нужно пойти получить свой идентификатор, чтобы иметь возможность сделать обновление или не нужно?
Что мне нужно сделать?
Как у меня дела хорошо? Мне нужно только создать маршрут :: пост?

страница моего профиля:

@if(Session::has('message'))
<div class="alert alert-danger">
<h5>{{ Session::get('message') }}</h5>
</div>
@endif

{!! Form::open(array('url' => 'backend/perfil', 'name' => 'updateProfile', 'role' => 'form'))!!}

<div class="row" style="margin-bottom: 20px;">
<div class="col-md-3 col-lg-3"></div>
<div class="col-md-2 col-lg-2">
{!! Form::label('name', 'Utilizador', ['class' => 'label_perfil']) !!}
</div>
<div class="col-md-5 col-lg-5">
{!! Form::text('name', null, ['class' => 'form-control input-md', 'placeholder' => 'Utilizador']) !!}
</div>
</div>
<div class="row" style="margin-bottom: 20px;">
<div class="col-md-3 col-lg-3"></div>
<div class="col-md-2 col-lg-2">
{!! Form::label('nascimento', 'Data de nascimento', ['class' => 'label_perfil']) !!}
</div>
<div class="col-md-5 col-lg-5">
{!! Form::date('nascimento', null, ['class' => 'form-control input-md']) !!}
{{ $errors->first('nascimento', '<span class=error>:message</span>') }}
</div>
</div>
<div class="row" style="margin-bottom: 20px;">
<div class="col-md-3 col-lg-3"></div>
<div class="col-md-2 col-lg-2">
{!! Form::label('sexo', 'Sexo', ['class' => 'label_perfil']) !!}
</div>
<div class="col-md-5 col-lg-5">
{!! Form::select('sexo', ['Masculino', 'Feminino'], null, ['class' => 'form-control input-md']) !!}
</div>
</div>
<div class="row" style="margin-bottom: 20px;">
<div class="col-md-3 col-lg-3"></div>
<div class="col-md-2 col-lg-2">
{!! Form::label('email', 'Email', ['class' => 'label_perfil']) !!}
</div>
<div class="col-md-5 col-lg-5">
{!! Form::text('email', null, ['class' => 'form-control input-md', 'placeholder' => 'Email']) !!}
</div>
</div>
<div class="row" style="margin-bottom: 20px;">
<div class="col-md-3 col-lg-3"></div>
<div class="col-md-2 col-lg-2">
{!! Form::label('password', 'Password', ['class' => 'label_perfil']) !!}
</div>
<div class="col-md-5 col-lg-5">
{!! Form::password('password', ['class' => 'form-control input-md', 'placeholder' => 'Password']) !!}
</div>
</div>
<div class="row" style="margin-bottom: 20px;">
<div class="col-md-3 col-lg-3"></div>
<div class="col-md-2 col-lg-2">
{!! Form::label('rpassword', 'Confirmar password', ['class' => 'label_perfil']) !!}
</div>
<div class="col-md-5 col-lg-5">
{!! Form::password('rpassword', ['class' => 'form-control input-md', 'placeholder' => 'Confirmar password']) !!}
</div>
</div>
<div class="row" style="margin-bottom: 20px;">
<div class="col-md-3 col-lg-3"></div>
<div class="col-md-2 col-lg-2">
{!! Form::label('imagem', 'Imagem', ['class' => 'label_perfil']) !!}
</div>
<div class="col-md-5 col-lg-5">
{!! Form::file('imagem', ['class' => 'input-file']) !!}
</div>
</div>
<div class="row" style="margin-bottom: 20px; margin-top: 30px;">
<div class="col-md-3 col-lg-3"></div>
<div class="col-md-9 col-lg-9">
{!! Form::submit('Enviar', ['class' => 'btn btn-primary']) !!}
</div>
</div>
{!! Form::close() !!}

Мой контроллер:

public function perfil() {
return view('backend/perfil.index');
}

public function updateProfile() {

$profileData = Input::except('_token');
$validation = Validator::make($profileData, User::$profileData);
if ($validation->passes()) {
User::where('id', Input::get('id'))->update($profileData);
return view('backend/perfil.index')->with('message', 'Updated Succesfully');
} else {
return view('backend/perfil.index')->with('message', $validation->messages());
}
}

Мой маршрут:

Route::get('backend/perfil','BackendControlador@perfil');
Route::post('backend/perfil', 'BackendControlador@updateProfile');

Пользователь моего приложения:

public static $profileData = array(
'email' =>  'required|email',
'name' =>  'required',
);

3

Решение

Вот подробный, что вы хотели сделать.

Шаг 1 : Откройте форму

{!! Form::open(array('url' => 'updateProfile', 'name' => 'updateProfile', 'role' => 'form'))!!}

Примечание. Ваше действие метода формы пустое. Вы должны просмотреть свой источник, чтобы увидеть его

Шаг 2 : Написать маршрут

Route :: post (‘updateProfile’, ‘homeController @ updateProfile’);

Это назовет homeController's updateProfile функция

Шаг 3 : Определите контроллер, подтвердите ввод и сделайте свое действие через модель

Вот простая / примерная функция для вас

public function updateProfile()
{
$profileData = Input::except('_token');
$validation = Validator::make($profileData, User::$profileData);
if ($validation->passes()) {
User::where('id', Input::get('id'))->update($profileData);
return view('profile')->with('message', 'Updated Succesfully');
} else {
return view('profile')->with('message', $validation->messages());
}

}

То, что он делает, это получит все входы, кроме _token и сохранить его в $profileData, тогда он сделает проверку, которая определена внутри $profileData внутри User модель

Вот валидатор, вы должны его изменить

public static $profileData = array(
'email' =>  'required|email',
'name' =>  'required',
);

Шаг 4: Вернуть результат

Если валидация пройдена, она будет обновляться в таблице, куда передается пользователь, чей идентификатор, т.е. Input::get('id') , и мы вернем страницу с return view('profile')->with('message', 'Updated Succesfully');

Я считаю ваше имя страницы profile.blade.php и вы должны изменить его в соответствии с вашим лезвием,

Если проверка не пройдена, мы вернем страницу с сообщениями об ошибках.

return view('profile')->with('message', $validation->messages());

Вы должны иметь это в своем лезвии для отображения сообщений об ошибках

@if(Session::has('message'))
<div class="alert alert-danger">
<h5>{{ Session::get('message') }}</h5>
</div>
@endif

Замечания :

Если вы не хотите обновлять страницу, вам нужно просто выполнить Ajax-вызов, чтобы передать переменные и показать / скрыть результаты, возвращаемые контроллером.

Надеюсь, это поможет вам

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]