0

我正在使用 cakephp 为数据库创建 UI。我对 cakephp 很陌生,所以我有点卡住了。我已成功安装 cakephp,将其连接到数据库。我已经根据教程创建了模型、控制器和视图,但是当我尝试加载此页面 localhost/app 时,这是我得到的错误任何帮助将不胜感激。

这是我的控制器的路径:app/controller/OutagesController.php 模型:app/model/Outage.php 视图:app/View/Outages/index.ctp 并且我的代码在下面另外,我是否加载了正确的 URL?在此先感谢 Tayo6。

enter code here
Error message:
Missing View
ERROR: THE VIEW FOR APPCONTROLLER::INDEX() WAS NOT FOUND.
ERROR: CONFIRM YOU HAVE CREATED THE FILE:         /USERS/ESTHER.AGBAJI/SITES/CAKE/APP/VIEW/APP/INDEX.CTP
Notice: If you want to customize this error message, create     app/View/Errors/missing_view.ctp
Stack Trace
    CORE/Cake/View/View.php line 468 → View->_getViewFileName(null)
    CORE/Cake/Controller/Controller.php line 948 → View->render(null, null)
    CORE/Cake/Routing/Dispatcher.php line 194 → Controller->render()
    CORE/Cake/Routing/Dispatcher.php line 162 → Dispatcher->_invoke(AppController, CakeRequest, CakeResponse)
    APP/webroot/index.php line 110 → Dispatcher->dispatch(CakeRequest, CakeResponse)
APP/index.php line 19 → require(string)


MODEL CLASS (Outage.php)
<?php


class Outage extends AppModel {
    var $name = 'Outages';
}

var $validate = array(
'id' => array(
'rule' => 'notEmpty'),

'start_date' => array(
'rule'=>'date'
'allowEmpty' => true),

'end_date' => array(

'allowEmpty' => true),

'application' => array(

'allowEmpty' => true),

'environment' => array(

'allowEmpty' => true),

'business_impact' => array(
'allowEmpty' => true),

'notified_by' => array(
'allowEmpty' => true),

'details' => array(
'allowEmpty' => true),

'severity' => array(
'rule' => 'notEmpty'),

'state' => array(
'allowEmpty' => true),

'resolved' => array(
'rule' => 'notEmpty')

'jira' => array(

'allowEmpty' => true)

);

 ?>

CONTROLLER CLASS (OutagesController.php)

<?php

class OutagesController extends AppController {

    var $name = 'Outages';
    var $helpers = array('Html', 'Ajax', 'Javascript');
   function index() {

    $this->set('outages', $this->Outage->find('all'));
    }
    function view($id = null) 
    {
    $this->Outage->id = $id;
    $this->set('outage', $this->Outage->read());
    print_r($this->viewVars);
    }
    $this->Outages->set($this->request->data);

}

?>
VIEW (index.ctp)

 <h2>Outages</h2>

<table>
    <tr>

        <th>Id</th>
        <th>Start date</th>
        <th>End date</th>
        <th>Application</th>
        <th>Environment</th>
        <th>Business impact</th>
        <th>Notified by</th>
        <th>Details</th>
        <th>Severity</th>
        <th>State</th>
        <th>Resolved</th>
        <th>Jira</th>

    </tr>

 <?php foreach ($outages as $outage: ?>

    <tr>
        <td><?php> echo $outage['Outage']['id']?></td>

        <td>
        <?php> echo $html->link(($outage['Outage']['start_date'],
        array('controller'=> 'outages', 'action'=> 'view', $outage['Outage']['id']));?>
        </td>

        <td><?php echo $outage['Outage']['end_date']; ?></td>
</tr>

 <?php endforeach; ?>
</table>    

非常感谢您的有用回复。我现在使用 localhost/outages 以正确的方式加载它,但我收到此错误消息:未找到请求的 URL /outages 在此服务器上未找到。我浏览了我的文件并确保它们位于正确的位置。太洋6

4

2 回答 2

1

很难从您的描述中准确判断出哪个 URL,但假设您让 localhost 直接指向您的 Web 应用程序,它应该是http://localhost/outages

通过使用 localhost/app 您试图获取“Ap​​pController”的索引(存在,但通常不直接使用)。要为您的应用获取“主页”,您应该使用 PagesController。

于 2013-07-16T00:45:18.657 回答
0

一切似乎都是正确的,也许唯一的问题在于您尝试访问的 URL。

尝试使用包含 /app、/lib、/vendors 等的应用程序根文件夹名称进行访问。

例如http://localhost/testapp

要在浏览器上运行的第一个页面,您可以在app/Config/routes.php

Router::connect('/', array('controller' => 'outages', 'action' => 'index'));
于 2013-07-16T03:33:54.353 回答