美好的一天,我正在学习laravel 5,现在我正在尝试创建一个登录。但是,我的登录信息会返回到我的登录表单,而不是转到textMetrics.text = model[i]
。这是我的剧本
HomeController
路线
class Loginsite extends Controller
{
public function index(){
return view::make("Login");
}
function loginproses(Request $request){
extract(Maincontroller::populateform());
/////////////////////////////////////////////////////////
$userdata = array(
'username' =>$username,
'password'=>$password
);
if(Auth::attempt($userdata) == true){
return redirect('/');
}else{
return redirect('/loginsite')->with('status', 'Username atau Password salah');
}
}
}
这是Auth::routes();
Route::get('/logout', 'Loginsite@logout');
Route::post('/Loginsite/loginproses', 'Loginsite@loginproses');
Route::post('/Loginsite/register', 'Loginsite@register');
Route::get('/Loginsite/', 'Loginsite@index');
Route::get('/confirm/{username}/{random}', 'Loginsite@confirm')->name('confirm');
Route::get('/', 'HomeController@index')->name('home');
HomeController
当我尝试class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
echo "Logged In";
}
}
时,我得到dd(Auth::attempt($userdata) );
我使用自定义表
true
MainController
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Loginmodel::class,
'table' => 'Userlogin'
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
来自提交的测试
class Maincontroller extends Controller
{
//
public static function populateform(){
$input = Input::all();
foreach(array_keys($input) as $key){
$populate[$key] = $input[$key];
}
return $populate;
}
}
返回
dd(Maincontroller::populateform());
提前致谢,抱歉我的英文不好
答案 0 :(得分:1)
if(Auth::attempt($userdata)){
return redirect('/home');
}else{
return redirect('/')->with('status', 'Username atau Password salah');
}
尝试删除true并保持简单并检查
答案 1 :(得分:0)
问题似乎只有$username
和$password
,password
需要进行哈希处理。您应该检查this answer并仔细阅读documentation。
我还想建议您在代码中进行一些编辑,这对简化非常重要。
在web.php
中,您可以看到主页路由的名称
Route::get('/', 'HomeController@index')->name('home');
始终引用该名称,这将有助于避免base_url问题(如果发生任何问题)或者如果您决定更改路线本身,则只需更改您在任何地方使用的名称引用的网址。
路线
Route::post('/Loginsite/loginproses', 'Loginsite@loginproses')->name('login_process');
Route::get('/Loginsite/', 'Loginsite@index')->name('loginsite_index');
LoginSite控制器
if(Auth::attempt($userdata) == true){
return redirect()->route('home');
}else{
return redirect()->route('loginsite_index')->with('status', 'Username atau Password salah');
}
登录表格
在路线名称
的操作方法中使用route()
<form action="{{ route('login_process') }}" method="post">
....
</form>
答案 2 :(得分:0)
在Auth :: attempt($ userdata)之前添加斜杠如果未找到auth也删除以检查为true。
if(\Auth::attempt($userdata)){
return redirect('/');
}else{
return redirect('/loginsite')->with('status', 'Username atau Password salah');
}