laravel 类 App\Http\Controllers\AdminController 不存在
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/37409825/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Class App\Http\Controllers\AdminController does not exist
提问by Muhammad Arslan
i have this error when user return from login to home page i can't understand what is it i am doing MultiAuth in laravel 5 and also help me if i can use login function and other registration function that is already available for users table i have no idea how to do that with already written functions
当用户从登录返回到主页时,我遇到此错误我不明白我在 Laravel 5 中执行 MultiAuth 是什么,如果我可以使用登录功能和其他已可用于用户表的注册功能,我也会帮助我不知道如何使用已经编写的函数来做到这一点
this is my login function
这是我的登录功能
public function login()
{
$data = Input::all();
// Applying validation rules.
$rules = array(
'email' => 'required|email',
'password' => 'required|min:6',
);
$validator = Validator::make($data, $rules);
if ($validator->fails()){
// If validation falis redirect back to login.
return Redirect::to('admin/login')->withInput(Input::except('password'))->withErrors($validator);
}
else {
$userdata = array(
'email' => Input::get('email'),
'password' => Input::get('password')
);
}
// doing login.
if (Auth::validate($userdata)) {
if (Auth::attempt($userdata)) {
return Redirect::intended('admin');
}
}
else {
// if any error send back with message.
Session::flash('error', 'Something went wrong');
return Redirect::to('admin/login');
}
}
this is my AdminController
这是我的 AdminController
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class AdminController extends Controller
{
// public function __construct(){
//
// $this->middleware('admins');
// }
public function index(){
// $user = Auth::user();
// dd($user);
return view('admin.home');
}
}
采纳答案by Filip Koblański
Add to your controller:
添加到您的控制器:
protected $guard = 'admin';
public function login()
{
$data = Input::only(['email', 'password']);
// Applying validation rules.
$rules = array(
'email' => 'required|email',
'password' => 'required|min:6',
);
$validator = Validator::make($data, $rules);
if ($validator->fails()){
// If validation falis redirect back to login.
return Redirect::to('admin/login')
->withInput(Input::except('password'))
->withErrors($validator);
}
if (Auth::->attempt($userdata)) {
return Redirect::intended('admin');
}
return Redirect::to('admin/login')
->with('error', 'Something went wrong');
}
回答by Filip Koblański
Problem is in your namespace. In the Contrroller you have:
问题出在您的命名空间中。在控制器中,您有:
namespace App\Http\Controllers\Admin;
So the full name is:
所以全名是:
App\Http\Controllers\Admin\AdminController;
and the error you get is:
你得到的错误是:
App\Http\Controllers\AdminController;
You have to remove Admin
from the ending of a namespace.
您必须Admin
从名称空间的末尾删除。
回答by Muhammad Arslan
this is my config/auth.php file
这是我的 config/auth.php 文件
<?php
return [
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
'admins' => [
'driver' => 'session',
'provider' => 'admins',
],
'api' => [
'driver' => 'token',
'provider' => 'admins',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
'passwords' => [
'users' => [
'provider' => 'users',
'email' => 'auth.emails.password',
'table' => 'password_resets',
'expire' => 60,
],
'admins' => [
'provider' => 'admins',
'email' => 'auth.emails.password',
'table' => 'password_resets',
'expire' => 60,
],
],
];
回答by Muhammad Arslan
my route file is
我的路由文件是
Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);
Route::group(['middleware' => ['web']], function () {
//Login Routes...
Route::get('/admin/login','AdminAuth\AuthController@showLoginForm');
Route::post('/admin/login','AdminAuth\AuthController@login');
Route::get('/admin/logout','AdminAuth\AuthController@logout');
// Registration Routes...
Route::get('admin/register', 'AdminAuth\AuthController@showRegistrationForm');
Route::post('admin/register', 'AdminAuth\AuthController@register');
Route::get('admin', 'AdminController@index');
});