【发布时间】: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 表,所以我只想使用该表进行身份验证。
-
更改功能后没有显示错误,但在我点击登录时只是给我空白页