2010-07-15 99 views
1

嗨!我正在尝试在cakePhp中创建Web服务。我是cakePhp的新手,最近才开始研究它。我在http://www.littlehart.net/atthekeyboard/2007/03/13/how-easy-are-web-services-in-cakephp-12-really-easy/ 找到了一个有用的教程,如教程中所述,我创建了controller和index.ctp文件。但是,当我输入控制器的URL(http://localhost:81/cakephp/foo)运行该文件,我得到了以下错误:ControllerFile在cakephp中找不到错误

// controllers/recipes_controller.php 
/** 
* Test controller for built-in web services in Cake 1.2.x.x 
* 
* @author Chris Hartjes 
* 
*/ 
class FooController extends AppController { 
    var $components = array('RequestHandler'); 
    var $uses = ''; 
    var $helpers = array('Text', 'Xml'); 
    function index() { 
     $message = 'Testing'; 
     $this->set('message', $message); 
     $this->RequestHandler->respondAs('xml'); 
     $this->viewPath .= '/xml'; 
     $this->layoutPath = 'xml'; 
    } 
} 

CakePHP的:快速发展的PHP框架

缺少控制器

错误:FooController的找不到。

错误:在文件中创建以下类FooController的:应用程序\控制器\ foo_controller.php

奇怪的是,(每个人都可以看到),该控制器的文字被装载在错误页面,但错误显示控制器文件未找到。 我也试着按照book.cakephp.org/view/477/The-Simple-Setup上的教程。 但同样的错误也发生在这里。任何人都可以帮忙顺便说一下,我还改变了routes.php的文本以使用web webservices。 谢谢

+1

是你在文件中包含上面的代码'控制器/ foo_controller.php',或,正如顶部的评论所示,“controllers/recipes_controller.php”? – 2010-07-15 12:37:02

回答

0

您已输入网址http://localhost:81/cakephp/foo。 Cake正确地解释这意味着您正在寻找FooController上的index操作。这个错误并不意味着它已经找到了这个文件,只是它已经找出了要查找的内容,但是并没有找到它所期望的地方。

行:错误:Create the class FooController below in file: app\controllers\foo_controller.php告诉你应该在那里(以及至少应该看起来像什么)。检查您是否正确命名了文件,并确定它位于错误说明的位置。

+1

谢谢!但我在app \ controllers文件夹中创建了文件foo_controller.php。这就是我很惊讶的原因。因为在错误页面的顶部,cakephp写入foo_controller.php的所有代码,并在代码之后提到foo_controller.php文件未找到。如果cakePhp没有找到该文件,那么它如何设法在错误页面上读取和写入它的文本?希望你现在明白这个问题。有关解决此问题的任何帮助。或者在cakephp 1.2中创建Rest Web服务将受到欢迎。 谢谢 – mas 2010-07-15 16:37:15

+0

尝试输入〜/ rubbishes/index之类的东西,看看错误是什么样子。 – Leo 2010-07-16 11:42:55

+0

你的电话应该是复数,应该是控制器的名字 - \t foos – Leo 2010-07-16 11:44:16

1

您的FooController文件的内容正在浏览器中输出的事实表明PHP未被执行。

你需要确保你的FooController类的定义被封闭在<?php?>标签,就像这样:

// controllers/recipes_controller.php 
/** 
* Test controller for built-in web services in Cake 1.2.x.x 
* 
* @author Chris Hartjes 
* 
*/ 
<?php 
class FooController extends AppController { 
    var $components = array('RequestHandler'); 
    var $uses = ''; 
    var $helpers = array('Text', 'Xml'); 
    function index() { 
     $message = 'Testing'; 
     $this->set('message', $message); 
     $this->RequestHandler->respondAs('xml'); 
     $this->viewPath .= '/xml'; 
     $this->layoutPath = 'xml'; 
    } 
} 
?>