$ this->带有inline = false的Html-> css不起作用

时间:2014-11-28 21:09:24

标签: cakephp-2.3

我在视图中使用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块。任何帮助将不胜感激。

2 个答案:

答案 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)); 

一切都会好起来的。