In this article, we’ll show you how to create various layouts for action views in your app. We assume, for example, that our application’s pages will employ three alternative layouts:
A one-column layout has only the main content area; a two-column layout has a left sidebar displaying portlets and the main content area; and a three-column layout has a left sidebar displaying portlets, the main content area, and a right sidebar displaying some context information.
The 960 Grid System is used to simplify the CSS design.
Because all three layouts have the same header and footer sections, we start with the primary layout, which will be the parent of the three. All of these layout files are kept in the protected/views/layouts folder.
Making Use of Layouts
The layout of a page (produced by calling [CController::render]) is primarily governed by two properties: [CWebApplication::layout] and [CController::layout], as we know. The former specifies the global layout for all pages in the application, whilst the latter can be used to override the former and specify an individual layout for a specific page.
We don’t know how to specify the breadcrumbs and portlets because they differ between views. Because we assume the current controller has crumbs, portlets, and portlets2 attributes in all of these layouts, it’s only logical that we create a base controller class to specify these common properties, and then derive each particular concrete controller class from this base class.
We must configure the [CController::layout] property in each action view to use the above column-based layouts. This property can be set in the controller or action class, but since it is connected to rendering, it would be better to put it in the view script. If a post list page requires a three-column style, for example.
What Is the Yii2 Habtm Model?
Well, you may get the greatest understanding of the Yii2 Habtm Model and How Do You Work With Diverse Layouts in Your Application Using Yii2 here. You can learn more about our Yii2 service to fulfil your project demands.