我在mysql中创建了名为subscriber的单独表,将config / auth.php设置更改为'model'=> App \ Subscribers :: class,'table'=> “用户”。 我在主页上有登录表单,提交到主页。 所以我在下面的路线
Route::get('/', function () {
return view('home');
});
Route::post('/', 'LoginController@validate');
我的LoginController
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, array $ customAttributes = Array)
答案 0 :(得分:1)
您不能使用'validate'作为函数的名称。它会与以下内容发生冲突:
App\Http\Controllers\Controller::validate
同时在if语句中添加'else',因此如果您的身份验证失败,您可以将用户重定向回登录屏幕。