简体   繁体   English

Cakephp-缺少视图错误

[英]Cakephp- missing view error

I am working on creating a UI for a database using cakephp. 我正在使用Cakephp为数据库创建UI。 I am very new to cakephp so I am a little stuck. 我是Cakephp的新手,所以有点卡住了。 I have successfully installed cakephp, connected it to the database. 我已经成功安装cakephp,并将其连接到数据库。 I have created the model, controller and view based on tutorials but when I try to load this page localhost/app this is the error I get Any help will be highly appreciated. 我已经基于教程创建了模型,控制器和视图,但是当我尝试加载此页面localhost / app时,这是我得到的错误。非常感谢您的帮助。

This is the path to my controller: app/controller/OutagesController.php model: app/model/Outage.php view: app/View/Outages/index.ctp and my code is below Also, Am I loading the right URL? 这是我的控制器的路径:app / controller / OutagesController.php模型:app / model / Outage.php视图:app / View / Outages / index.ctp,下面是我的代码另外,我是否加载了正确的URL? Thanks in advance Tayo6. 预先感谢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>    

Thank you so much for your useful responses. 非常感谢您的有用回复。 I am now loading it the right way, using localhost/outages but I get this error message: Not Found The requested URL /outages was not found on this server. 我现在使用localhost / outages以正确的方式加载它,但是出现以下错误消息:Not Found在此服务器上找不到请求的URL / outages。 I have gone through my files and made sure they are in the right places. 我浏览了所有文件,并确保它们在正确的位置。 Tayo6 Tayo6

It's difficult to tell exactly which URL from your description, but assuming you let localhost point directly to your webapplication, it should be http://localhost/outages 很难准确地从描述中分辨出哪个URL,但是假设您让localhost直接指向您的Web应用程序,则它应该为http://localhost/outages outages

By using localhost/app you're trying to get the index of the 'AppController' (which exists, but is normally not used directly). 通过使用localhost / app,您正在尝试获取“ AppController”的索引(存在,但通常不直接使用)。 To get a 'home' page for your app, your should use the PagesController. 要获得应用程序的“主页”页面,应使用PagesController。

Everything seems to be correct perhaps only problem is in the URL you are trying to access. 一切似乎都是正确的,也许唯一的问题是您尝试访问的URL。

Try to access with the application root folder name which contains /app, /lib, /vendors etc. 尝试使用包含/ app,/ lib,/ vendors等的应用程序根文件夹名称进行访问。

For eg http://localhost/testapp 对于例如http://localhost/testapp

The first page to be run on browser, you can make that setting in app/Config/routes.php 要在浏览器上运行的第一页,您可以在app/Config/routes.php进行设置

Router::connect('/', array('controller' => 'outages', 'action' => 'index'));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM