2012-11-19 54 views
3

我正在laravel上工作並遵循教程http://technetlk.blogspot.com.au/2012/09/laravel-backbonejs-coffeescript_3527.html。目前正在研究本教程的第7部分。在laravel中找不到類錯誤

routes.php我已經寫

Route::any('api/category/(:num?)', 
    array('as' => 'api.category', 
     'uses' => '[email protected]') 
); 

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"}' 

我收到follwing錯誤

未處理的異常

消息:

類 '目錄' 未找到地點:

C:\ XAMPP \ htdocs中\ NewBlog \應用\ controllers \ api \ category.php on line 9

回答

1

您的類別型號應位於/application/models/category.php

你BaseModel類應位於/application/models/basemodel.php

以下是如果你的BaseModel類不在定義的Autoloader目錄:

您可能會遇到的另一個問題是BaseModel無法正確自動加載 。

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

感謝名單喬爾,但我沒有得到basemodel的這條道路是什麼'路徑( '應用')。'/路徑/要/ basemodel.php'' – user1829474

+0

你可能將不需要映射到'BaseModel',但要確保它們都在'application/models'內。 –

+0

傑森劉易斯是對的。只有當您不將BaseModel類保存到「application/models/basemodel.php」時,才需要使用Autoloader :: map代碼。 –

1

u必須指定控制器文件模型使用它

之前:這可以通過添加這行代碼到你的應用程序文件夾中找到您的 start.php文件修復在您的控制器文件中,在以下行的上方添加以下行:

use App \ Category;

類Api_Category_Controller擴展Base_Controller {