2014-12-02 19 views
0

我一直在阅读,直到我的眼睛肿胀,并有麻烦发现什么应该是一个简单的答案。创建视图(cakePHP noob)

我不是PHP的新手,但我是CakePHP的新手。请耐心支持我,并耐心对我对术语缺乏了解的无知。

我被要求帮助在CakePHP开发的网站上进行一些修复,这是最近创建的。

该网站缺失“http://domain.com/logout”的网页。我可以看到我需要在UserController中访问的函数,但我不确定在哪里放置.ctp文件来生成视图。

让我们只是说我想logout.ctl文件是简单的: echo“Hello World”;

在我的应用程序/查看文件夹下我有子文件夹主页,&我试图将此文件放入的用户。我假设我还必须做其他的事情,但我一直无法找到那是什么。

任何帮助表示赞赏。谢谢阅读!

回答

1

1.默认情况下,您应该通过创建Views/Controller/action.ctp将视图和控制器链接在一起。

由于url通过路由链接到Controller,因此视图不直接与其关联。

例如,如果您已设置

Router::connect('/logout/', array('controller' => 'User', 'action' => 'logout')); 

,那么你可能想创建视图/用户/ logout.ctp。

如果已设置

Router::connect('/logout/', array('controller' => 'Home', 'action' => 'logout')); 

,那么你可能要创建视图/主页/ logout.ctp。

2.You可以$this->view='sample'$this->render('sample');改变你的行为的观点,然后创建名称sample.ctp视图文件。

3.您还可以用$this->render('/Sample/logout');阅读另一个文件夹的视图。 参考:http://book.cakephp.org/2.0/en/controllers.html

4.如果您使用主题$this->theme = 'Example';,默认视图文件将被设置为/app/View/Themed/Example/Posts/edit.ctp。 参考:http://book.cakephp.org/2.0/en/views/themes.html

5.我认为cakephp视图文件的默认扩展名是.ctp,但不是.ctl。 Microsoft Visual Studio使用.ctl?我不太确定。

+0

看起来像我唯一缺少的是实际的路径应该是/用户/注销不只是/注销... ARGH! – Thomas 2014-12-02 08:57:03

+0

这仍然只是让我的行动,这在那种情况下罚款。在另一个问题后面,我仍然需要访问一个新的视图,所以我仍然需要解决这个问题。我在UserController中发布了一个数组$ this-> Security-> unlockedActions,列出了所有的视图。我在那里添加了我的页面。 – Thomas 2014-12-02 11:03:33

+0

您可以使用方法3(通过调用$ this-> render *('/ sample/sample')来设置您在动作中读取的视图。基本上你可以把你的视图文件放在你想要的任何地方并使用这个技巧。 – kyo 2014-12-02 12:08:05