Я новичок в Laravel, пытаюсь сделать очень простую форму входа.
В этой форме есть флажок «Запомнить меня». Я попытался реализовать его функциональность, используя Cookie::make()
, но оказалось, что мне нужно вернуть Response
, чтобы сохранить его.
Когда я проверяю файлы cookie, сохраненные от localhost
, в своем браузере, я не нахожу файл cookie с именем username
. Я провел некоторое исследование, и оказалось, что я должен прикрепить файл cookie к Response
, а затем вернуть его.
Проблема в том, что я не хочу возвращать Response
!!
Я еще не дошел до Auth
класса в процессе обучения. Так что решение без использования этого класса было бы более подходящим.
Вот мой код:
public function processForm(){
$data = Input::all();
if($data['username'] == "rafael" & $data['password'] == "123456"){
if(Input::has('rememberme')){
$cookie = Cookie::make('username', $data['username'], 20);
}
Session::put('username', $data['username']);
return Redirect::to('result');
} else {
$message_arr = array('message' => 'Invalid username or password!');
return View::make('signup', $message_arr);
}
}
My signup.blade.php
:
@extends('layout')
@section('content')
@if(isset($message))
<p>Invalid username or password.</p>
@endif
<form action="{{ URL::current() }}" method="post">
<input type="text" name="username"/>
<br>
<input type="text" name="password"/>
<br>
<input type="checkbox" name="rememberme" value="true"/>
<input type="submit" name="submit" value="Submit" />
</form>
@stop
routes.php
:
Route::get('signup', 'ActionController@showForm');
Route::post('signup', 'ActionController@processForm');
Route::get('result', 'ActionController@showResult');