10

Can Someone please Explain this two line used in CakePHP layout.ctp file. It seems both line used for adding css .Then what is the difference ? How they works.

 $this->Html->css('cake.generic')
 $this->fetch('css') 
Dhaval Marthak
  • 17,246
  • 6
  • 46
  • 68
Asfaq Tamim
  • 5,677
  • 5
  • 22
  • 29

1 Answers1

10

See the documentation on using blocks for script and CSS files.

In your view(s) you can use: $this->Html->css('cake.generic')

In your layout(s), you can use: $this->fetch('css')

A layout contains presentation code that wraps around a view. Anything you want to see in all of your views should be placed in a layout.

What this means is that when defining your layout, using $this->fetch('css') will add in any css blocks used in your views, so if in your views you'd put both:

$this->Html->css('cake.generic') $this->Html->css('cake.special')

Using $this->fetch('css') in your layout would include both. Note that without defining the block content first, it will not call anything. The addition of $this->Html->css('cake.generic') in the layout file before the block call ensures it is added if it is not already included in a defined view.

SW4
  • 69,876
  • 20
  • 132
  • 137