2016-05-24 4 views
0

У меня есть эта ошибка, когда пользователь возвращается с входа на домашнюю страницу. Я не могу понять, что это такое, я делаю MultiAuth в laravel 5, а также помогу мне, если я могу использовать логин функция и другая функция регистрации, которая уже доступна для пользователей таблицы я понятия не имею, как это сделать с уже написанными функциямиКласс App Http Controllers AdminController не существует

это мой Войти функция

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'); 
     } 
    } 

это мой 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'); 
    } 
} 
+0

я делаю это для администратора –

+0

Что Ошибка? –

+0

Класс App \ Http \ Controllers \ AdminController не существует –

ответ

1

Добавить к контроллеру:

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'); 
} 
+0

Другая проблема с этой функцией заключается в том, что она соответствует электронной почте и паролю с помощью таблицы users not admins table –

+0

У меня есть два пользователя таблицы (уже есть) и администраторы, и эта форма должна проверять электронную почту и пароль с помощью таблицы admins table not users table –

+0

in if condition admin имя моей таблицы или имени модели? –

2

Проблема в вашем пространстве имен. В Contrroller у вас есть:

namespace App\Http\Controllers\Admin; 

Так полное название:

App\Http\Controllers\Admin\AdminController; 

и ошибка вы получаете:

App\Http\Controllers\AdminController; 

Вы должны удалить Admin из концовки Пространство имен.

+0

что я пишу по маршруту? –

+0

Не могли бы вы показать свой маршрут.php –

+0

Здесь: 'Route :: get ('admin', 'Admin \ AdminController @ index');' –

0

мой файл маршрут

Route::controllers([ 
    'auth' => 'Auth\AuthController', 
    'password' => 'Auth\PasswordController', 
]); 

Route::group(['middleware' => ['web']], function() { 
    //Login Routes... 
    Route::get('/admin/login','AdminAuth\[email protected]'); 
    Route::post('/admin/login','AdminAuth\[email protected]'); 
    Route::get('/admin/logout','AdminAuth\[email protected]'); 

    // Registration Routes... 
    Route::get('admin/register', 'AdminAuth\[email protected]'); 
    Route::post('admin/register', 'AdminAuth\[email protected]'); 

    Route::get('admin', '[email protected]'); 

}); 
0

это мой конфиг/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, 
     ], 
    ], 

]; 
+0

Хорошо, это немного отличается. Поэтому в вашем классе контроллера просто добавьте: 'protected $ guard = 'admin';' –

Смежные вопросы