我在视图中使用inline = false定义了一个css块。在布局中我尝试获取此块。但这不起作用。我认为问题通过以下代码解释。以下是我的观点:
<script type="text/javascript">
$(function() {$(".datepicker").datepicker({
numberOfMonths: 3,
showButtonPanel: false}
);});
</script>
<?php $this->Html->script(array('jquery-1.10.1.min', 'jquery-ui', 'jquery-ui-datepicker-de'), array('inline' => false));
$this->Html->css('jquery-ui.css', array('inline' => false)); ?>
<div class="schooltimes form">
<?php echo $this->Form->create('Schooltime'); ?>
<fieldset>
<legend><?php echo 'Schulunterrichtstermin hinzufügen'; ?></legend>
<?php
echo $this->Form->input('dateinput', array('class'=>'datepicker', 'type'=>'text', 'label' => 'Datum des nächsten Schulunterrichtstermins'));
echo $this->Form->input('timeinput', array('type' => 'text', 'label' => 'Uhrzeit des Unterrichtsendes im Format HH:MM'));
echo $this->Form->input('school', array('type'=>'text', 'label'=>'Schule / Universität / Fachhochschule / sonstige Bildungseinrichtung'));
echo $this->Form->input('grade', array('type'=>'text', 'label'=>'Klasse / Stufe / Semester'));
echo $this->Form->input('teacher', array('type'=>'text', 'label'=>'Lehrer / Dozent'));
echo $this->Form->input('subject', array('type'=>'text', 'label'=>'Fach / Kurs'));
echo $this->Form->input('book', array('type'=>'text', 'label'=>'Schulbuch / Skript / Basislektüre'));
echo $this->Form->input('inter', array('type' => 'select', 'label' => 'Rhythmus', 'options' => array('P1W' => 'wöchentlich', 'P2W' => '2-wöchentlich')));
?>
</fieldset>
<?php echo $this->Form->end(array('label' => 'Speichern')); ?>
</div>
这是布局:
<!DOCTYPE html>
<html>
<head>
<?php echo $this->Html->charset(); ?>
<title>
<?php echo 'Kundenservice' ?>:
<?php echo $title_for_layout; ?>
</title>
<?php
echo $this->Html->meta('icon');
echo $this->fetch('meta');
echo $this->fetch('css'); // doesn't work
echo $this->fetch('script'); // works fine
?>
</head>
<body>...
这是结果:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Kundenservice: Schooltimes</title>
<link href="/kundenservice/favicon.ico" type="image/x-icon" rel="icon" /><link href="/kundenservice/favicon.ico" type="image/x-icon" rel="shortcut icon" /><link rel="stylesheet" type="text/css" href="/kundenservice/css/cake.generic.css" /><script type="text/javascript" src="/kundenservice/js/jquery-1.10.1.min.js"></script><script type="text/javascript" src="/kundenservice/js/jquery-ui.js"></script><script type="text/javascript" src="/kundenservice/js/jquery-ui-datepicker-de.js"></script></head>
cake php正确获取脚本块但完全忽略了css块。任何帮助将不胜感激。
答案 0 :(得分:1)
试试这个::
<?php $this->Html->script(array('jquery-1.10.1.min', 'jquery-ui', 'jquery-ui-datepicker-de'), array('block' => 'script'));
$this->Html->css('jquery-ui.css', array('block' => 'css')); ?>
尝试使用自定义块。我认为这是更好的方式。
// in your view
$this->Html->script('jsfile', array('block' => 'scriptBottom'));
// in your layout
echo $this->fetch('scriptBottom');
答案 1 :(得分:0)
我使用的是2.3.0。如果你看看HtmlHelper css函数,它看起来像:
public function css($path, $rel = null, $options = array())
因此,cakephp网站上的文档缺少提及$ rel参数(http://book.cakephp.org/2.0/en/core-libraries/helpers/html.html)。
只需将您的通话更改为:
$this->Html->css('jquery-ui.css',null, array('inline' => false));
一切都会好起来的。