3

我正在使用 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 在第 9 行

4

2 回答 2

1

Your Category Model should be located in /application/models/category.php

Your BaseModel class should be located in /application/models/basemodel.php

The following is if your BaseModel class is not in a defined Autoloader directory:

Another problem you may face is the BaseModel not autoloading correctly. This can be fixed by appending this line of code to your start.php file found in your application folder:

// Autoloader::map
'BaseModel' => path('app').'/path/to/basemodel.php',
于 2012-11-19T08:12:33.737 回答
1

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

在控制器文件中的以下行上方添加此行

使用应用\类别;

类 Api_Category_Controller 扩展 Base_Controller {

于 2015-09-24T12:00:07.817 回答