【问题标题】:using different table to authenticate user in laravel 5在 laravel 5 中使用不同的表对用户进行身份验证
【发布时间】:2016-01-25 22:13:00
【问题描述】:

我在 mysql 中创建了名为subscribers 的单独表,将 config/auth.php 设置更改为 'model' => App\Subscribers::class, 'table' => 'subscribers'。 我在主页上有登录表单,提交到主页。 所以在我下面的路线中

Route::get('/', function () {
    return view('home');
});

Route::post('/', 'LoginController@validate');

我的登录控制器

namespace App\Http\Controllers;

use App\Http\Requests;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{
    public function validate()
    {
        // attempt to do the login
        $auth = Auth::attempt(
            [
                'email'  => strtolower(Input::get('email')),
                'password'  => Hash::make(Input::get('password'))
            ]
        );
        if ($auth) {
            return Redirect::to('dashboard');
        }

    }
}

当我登录时,我得到以下错误

声明 App\Http\Controllers\LoginController::validate() 应该兼容 App\Http\Controllers\Controller::validate(Illuminate\Http\Request $request, array $rules, array $messages = Array,数组 $customAttributes = 数组)

【问题讨论】:

  • 将您的函数重命名为其他名称,然后“验证”。我认为这就是您遇到此问题的原因。不要忘记更改您的路线。
  • 好吧,让我试试,同样在我的 if Auth::attempt() IDE 中告诉我该函数未定义。你知道我需要在顶部“使用”什么吗?
  • 你为什么不使用 laravel 的内置身份验证? laravel.com/docs/5.1/authentication。或者您想在身份验证方面做一些特别的事情?
  • 我在学习 laravel 的同时也在构建它,而且我已经构建了包含大量信息的订阅者模型和 db 表,所以我只想使用该表进行身份验证。
  • 更改功能后没有显示错误,但在我点击登录时只是给我空白页

标签: php laravel-5


【解决方案1】:

您不能使用“验证”作为函数的名称。它将与:

App\Http\Controllers\Controller::validate

还可以在 if 语句中添加一个“else”,这样如果您的身份验证失败,您可以将用户重定向回登录屏幕。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-15
    • 2017-06-14
    • 2023-03-20
    • 2015-10-13
    • 1970-01-01
    • 2021-10-06
    • 2021-02-08
    相关资源
    最近更新 更多