【问题标题】:laravel route error class not foundlaravel 路由错误类未找到
【发布时间】:2014-10-02 18:34:01
【问题描述】:

我是 Laravel 框架的新手,我被路由困住了。

文件夹结构:

app  
     controllers\ 
                   admin\ authcontroller.php

路线:

Route::get('admin/logout', array('as' =>'admin.logout', 'uses'=>'App\Controllers\Admin\AuthController@getLogout' ));
Route::get('admin/login', array('as' =>'admin.login' , 'uses'=>'App\Controllers\Admin\AuthController@getLogin' ));
Route::get('admin/login',array('as'=>'admin.login.post','uses'=>'App\Controllers\Admin\AuthController@postLogin'));

Route::group( array('prefix' =>'admin' ,'before'=>'auth.admin' ),function (){

    Route::any('/','App\Controllers\Admin\PagesController@index');

    Route::resource('articles','APP\Controllers\Admin\ArticlesController');
    Route::resource('pages','App\Controllers\Admin\PagesController');

});

authcontroller.php

<?php 
namespace App\Controllers\Admin

use Auth, BaseController, Form, Input, Redirect, Sentry, View;

class Authcontroller extends BaseController
{
    public function getLogin(){
      die('here');
        return  View::make('admin.auth.login');
    }
    public function postLogin(){
         $credentials= array(
            'email' =>Input::get('email') ,
            'password'=>Input::get('password'),
             );

         try{

            $user=Sentry::authenticate($credentials,FALSE);
            if($user){
                return  Redirect::route('admin.pages.index');
            }
         }

         catch (Exception $e){
            return  Redirect::route('admin.login')->withErrors(array('login' => $e->getMessage() ));

         }
    }
    /*
      logout function
    */

      public function  getLogout(){
         Sentry::logout();
         return  Redirect::route('admin.login');
      }
}

错误:

类 App\Controllers\Admin\AuthController 不存在

是什么让这个错误出现

当我从 CMD 运行 composer dump-autoload 时 我没有找到在 autoload_namespaces.php 文件中加载的命名空间

【问题讨论】:

  • 您放置控制器的命名空间是否正确?
  • 我在我的控制器命名空间 App\Controller\Admin 中使用它,使用 Auth、BaseController、Form、Input、Redirect、Sentry、View;
  • 你做了作曲家转储自动加载吗?此外,您拼写的是“Controller”,而不是“Controllers”,因此请尝试使用 \App\Controller\Admin\AuthController@method
  • 当我让 composer dump-autoload 命名空间没有出现在 autoload_namespaces.php 中,我也无法理解您解决方案的第二部分,请提供更多详细信息

标签: php laravel-4


【解决方案1】:

您输入错误。您的控制器名称是“Authcontroller”,在您的路线中它是“AuthController”。或者你已经看到了吗?

【讨论】:

  • 我已将路由名称更改为与控制器相同,但错误仍然存​​在 Class App\Controllers\Admin\Authcontroller does not exist
  • 你再次dumpautoload -o 了吗?现在你又写了“Authcontroller”!?在 composer.json 中使用 PSR-0 或 PSR-4?
  • 我得到这个错误语法错误,意外'使用'(T_USE),期待\\(T_NS_SEPARATOR)或';'或控制器命名空间 App\Controllers\Admin 中的 '{' 使用 Auth、BaseController、Form、Input、Redirect、Sentry、View;
  • 这很好。现在将找到控制器。新错误表示控制器本身存在错误。在大多数情况下,这是一个“:”而不是“;”或缺少“;”。如果找不到,请发布控制器文件。比我能仔细看看。
  • 我在控制器字段上方看到。这 ”;”在命名空间丢失之后。
猜你喜欢
  • 2015-02-04
  • 2014-12-29
  • 1970-01-01
  • 2019-05-20
  • 2016-09-11
  • 2016-02-27
  • 2021-06-18
  • 2017-06-17
  • 2018-12-27
相关资源
最近更新 更多