【问题标题】:auth::attemp not working properly laravelauth::attempt 无法正常工作 laravel
【发布时间】:2017-02-28 21:46:28
【问题描述】:

我在 laravel 中的登录无法正常工作。我已经被困在这里很长时间了。这是我的登录控制器代码

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;


class UsersController extends Controller
{
protected function dashboard(Request $request)
{

    if (Auth::attempt(array('account_number'=>$request['accountnumber-login'], 'password'=> $request['txt-password']))) {
        return redirect()->intended('viewdashboard');
    }

} 

protected function viewdashboard()
{
    return view('dashboard');
}
}

..在这个控制器中,'account-number' 是数据库中的帐号列,'password' 是数据库中的密码列。我已正确完成所有操作,但它没有将我重定向到仪表板视图。请帮忙

这是我的html表单

<html>
<form action="dashboard" method="GET">
<input type="number" name="accountnumber">
<input type="password" name="password">
</form

</html>

这是我的网络路由文件夹

Route::get('dashboard', function(){
return view('dashboard_view');
}

请帮忙。

【问题讨论】:

  • 你有存储在用户表中的凭证吗?
  • 你遇到了什么错误?
  • 即使输入正确,它也不会显示我想要的视图。它只是向我显示了一个带有仪表板路线的空白页面
  • @Niklesh 我不知道,现在它说一个错误,上面写着:SQLSTATE[42S22]: Column not found: 1054 Unknown column '0' in 'where clause' (SQL: select * from users where 0 = 2110729927 限制 1)

标签: php laravel laravel-5 laravel-5.2 laravel-5.3


【解决方案1】:

您没有在路由中使用 UsersController。

Route::get('dashboard', 'App\Http\Controllers\UsersController@dashboard');

另外,您访问请求数据的方式也不正确。

使用

$request->input('accountnumber');

编辑:

第三,仪表板方法必须是公开的

 public function dashboard(Request $request) 

【讨论】:

  • 但是数组正确吗??或者你有其他程序员的好习惯
  • 问题是它没有重定向。我可以重定向到我的控制器吗
  • 它的重定向不好
【解决方案2】:

您正在获取您在表单中输入的其他名称的值,试试这个来获取您的控制器中的值:

public function auth(Request $request)
{ 

if (Auth::attempt(array('account_number'=>$request->input('accountnumber'), 'password'=> $request->input('password')]))) {
    return redirect()->intended('viewdashboard');
}

注意:方法必须是公开的

此外,您必须添加其他路由以获取仪表板请求或重命名您指向表单的路由。

Route::get('auth', 'App\Http\Controllers\UsersController@auth');

同时更新您的 HTML 表单。

【讨论】:

  • 我不知道,现在它说一个错误,上面写着: SQLSTATE[42S22]: Column not found: 1054 Unknown column '0' in 'where clause' (SQL: select * from users where 0 = 2110729927 限制 1)
  • 用户名是邮箱还是ID?如果您使用的是默认身份验证应该是电子邮件,所以用这个更新尝试:if (Auth::attempt(array('email'=&gt;$request-&gt;input('accountnumber'), 'password'=&gt; $request-&gt;input('password')])))@OGPaulCaleb
  • 如果您想通过其他字段更改电子邮件,请查看:stackoverflow.com/questions/28584531/…
猜你喜欢
  • 2015-06-10
  • 1970-01-01
  • 2017-03-10
  • 2014-06-20
  • 1970-01-01
  • 2016-12-29
  • 2019-05-27
  • 2019-03-12
  • 2019-09-12
相关资源
最近更新 更多