Laravel登录后返回登录表单

时间:2017-07-12 06:28:44

标签: php laravel-5

美好的一天,我正在学习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());

提前致谢,抱歉我的英文不好

3 个答案:

答案 0 :(得分:1)

if(Auth::attempt($userdata)){ 
return redirect('/home'); 

}else{ 
return redirect('/')->with('status', 'Username atau Password salah'); 
}

尝试删除true并保持简单并检查

答案 1 :(得分:0)

问题似乎只有$username$passwordpassword需要进行哈希处理。您应该检查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');
   }