在laravel中获取类未找到错误

时间:2012-11-19 08:03:35

标签: laravel

我正在开发laravel并遵循教程http://technetlk.blogspot.com.au/2012/09/laravel-backbonejs-coffeescript_3527.html。目前正在编写本教程的第7部分。

routes.php我写过

Route::any('api/category/(:num?)',
   array('as' => 'api.category',
        'uses' => 'api.category@index')
);

api/category.php

<?php
class Api_Category_Controller extends Base_Controller
{
    public $restful = true;
    public function get_index($id = null) 
    {
        if (is_null($id ))
        {
            $allCats = Category::all();
            return BaseModel::allToJson($allCats);
        }
        else
        {
            $cat = Category::find($id);
            return $cat->toJson();            
        }
    }
    public function post_index()
    {
            $cat = Input::json();
            $dbCat = new Category();
            $dbCat->code = $cat->code;
            $dbCat->name = $cat->name;
            $dbCat->save();
            return $dbCat->toJson();
    }

    public function put_index()
    {
            $cat = Input::json();
            $dbCat = Category::find($cat->id);
            $dbCat->code = $cat->code;
            $dbCat->name = $cat->name;
            $dbCat->save();
            return $dbCat->toJson();
    }
    public function delete_index($id = null)
    {
            $dbCat = Category::find($id);
            $dbCat->delete();        
    }    
}

?>

并在BaseModel.php

<?php
class Category extends BaseModel 
{
    public static $table = 'tbl_category';
}
class BaseModel extends Eloquent 
{
   public function toJson()
   {
     return json_encode($this->to_array());
   }
   public static function allToJson($array)
   {
      $temp = array();
      foreach($array as $t)
      {
          $temp[] = $t->to_array();                
      }
      return json_encode($temp);                    
    }
}
?> 

当我试图运行时

curl -X POST http://lbc.dev/api/category -H "Content-Type: application/json" –d '{"code":"cat1", "name":"Category One"}'

我收到了以下错误

  

未处理的例外

     

消息:

     

未找到“类别”类别地点:

     

C:\ xampp \ htdocs \ NewBlog \ application \ controllers \ api \ category.php on   第9行

2 个答案:

答案 0 :(得分:1)

您的类别模型应位于/application/models/category.php

您的BaseModel类应位于/application/models/basemodel.php

以下是您的BaseModel类不在定义的Autoloader目录中:

  

您可能遇到的另一个问题是BaseModel没有自动加载   正确。这可以通过将这行代码附​​加到您的   在应用程序文件夹中找到start.php文件:

// Autoloader::map
'BaseModel' => path('app').'/path/to/basemodel.php',

答案 1 :(得分:1)

在使用

之前,你必须在控制器文件中指定模型

在控制器文件

中的以下行上方添加此行

使用App \ Category;

类Api_Category_Controller扩展了Base_Controller {