我正在开发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行
答案 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 {