Php 如何覆盖默认布局
我是PHP新手,今天我能够使用CakePHP yay显示我的第一个项目列表!但是,无论我显示什么,总是以默认格式显示。如何覆盖视图以在html中显示页面?我把css、javascript和图像放在哪里?在此之前,我的HTML在标题中有这个Php 如何覆盖默认布局,php,html,css,cakephp,Php,Html,Css,Cakephp,我是PHP新手,今天我能够使用CakePHP yay显示我的第一个项目列表!但是,无论我显示什么,总是以默认格式显示。如何覆盖视图以在html中显示页面?我把css、javascript和图像放在哪里?在此之前,我的HTML在标题中有这个 <link rel="stylesheet" href="css/stylestopmenu.css" type="text/css" /> <link rel="stylesheet" href="css/stylessidemenu.cs
<link rel="stylesheet" href="css/stylestopmenu.css" type="text/css" />
<link rel="stylesheet" href="css/stylessidemenu.css" type="text/css" />
<link rel="stylesheet" href="css/jquery.rating.css" type="text/css" />
<link rel="stylesheet" href="css/specialtablemenu.css" type="text/css" />
<link rel="stylesheet" href="css/admintable.css" type="text/css" />
<script type="text/javascript" src="javascript/jquery.min.js"></script>
我不知道如何设计它,使其显示与以前一样。现在是这样的
我不想完全摆脱这一点,因为它告诉我错误,但,我如何才能这样做,我可以风格的网页,也许在其他地方?请原谅我,我是新的PHP和它是我很难理解的教程。非常感谢您的帮助。您需要在控制器中定义自定义布局以覆盖默认布局: //in controller say in beforeFilter function beforeFilter() { parent::beforeFilter(); $this->layout = "your_layout_name"; } //在控制器中说在beforeFilter中 函数beforeFilter(){ 父::beforeFilter(); $this->layout=“your\u layout\u name”; }
希望它能帮助您CakePHP可以让您覆盖几乎所有内容,您只需要了解它的结构。最好是从
APP\u DIR\cake\libs\view\layouts\default.ctp
中的cake文件夹复制default.ctp文件
复制完后,将其放入
APP\u DIR\APP\views\layouts\
中,cake将开始使用该文件。要自定义它,只需打开该文件并在编辑器中进行更改。一个小问题,我应该将我的图像、css和javascript放在哪里?通常是APP_DIR/APP/webroot/img/用于图像,APP_DIR/APP/webroot/js/用于脚本。但只要你把它放在webroot中,这并不重要,因为你可以简单地编辑布局,指向任何地方。只需确保使用帮助程序或URL帮助程序来生成路径。如果您将适当的资源放在适当的目录中(css
,js
,img
),您就可以更轻松地利用HTML帮助程序,而不会弄乱$this->webroot
。例如:webroot/img/foo.jpg';?>“/>
变成
@Ross您不需要webroot。您也可以轻松地执行$this->image('/images/foo.jpg');
。只需要使用绝对路径。@Ross不会有什么区别,因为您放置的路径是来自应用程序webroot的绝对路径。因此您是安全的。