簡體   English   中英

Codeigniter的頁眉和頁腳包括

[英]Codeigniter header and footer include

我正在嘗試從AngularJS遷移到PHP Model-View-Controler框架,但是有些東西並沒有吸引我,因為我會重復很多。 在angular中,您可以簡單地包含頁腳和頁眉,並且所有神奇的事情都取決於路線。 但是在Codeiginiter中,對於每個視圖,您都需要包括頁眉和頁腳。 是否有任何無需重復很多重復的好習慣

在angularjs我很簡單。

    <div ng-include='"templates/header.html"'></div>
    <div ng-view></div>
    <div ng-include='"templates/footer.html"'></div>

這是路由

 .when("/", {
        templateUrl: "partials/home.html",
        controller: "PageCtrl"   
    })
    // Pages
    .when("/home", {
        templateUrl: "partials/home.html",
        controller: "PageCtrl",
    })
    .when("/about", {
        templateUrl: "partials/about.html",
         controller: "PageCtrl"
    })

這是在CodeIgniter中完成的

     public function home(){ 
    $this->load->view('templates/header');
    $this->load->view('about');
    $this->load->view('templates/footer');
    }
   public function about(){ 
    $this->load->view('templates/header');
    $this->load->view('index');
    $this->load->view('templates/footer');
    }

您可以在文件的頂部和底部放置:

查看文件:

<?php
$this->load->view('templates/header');
// your main file (index;about etc)
$this->load->view('templates/footer')

因此,在控制器中,您可以只加載主文件,即

控制器文件:

public function home()
{
    // $this->load->vars($data)
    $this->load->view('index');
}

還要研究Loader類,以了解如何為所有這些文件設置變量。

在您的控制器中,您可以使用以下給定的簡單方法指定所有頁面的頁眉和頁腳。

控制者

class Home extends CI_Controller {
    public function index()
    {   
        $headerData = array(
            "pageTitle" => "Home",
            "stylesheet" => array("home.css")
        );

        $footerData = array(
            "jsFiles" => array("home.js")
        );

        $viewData = array(
            "viewName" => "home",
            "viewData" => array(),
            "headerData" => $headerData,
            "footerData" => $footerData 
        );
    $this->load->view('template',$viewData); // load `Home` view to template file in view folder.
}

查看 (template.php)

$this->load->view("includes/header.php",$headerData);

$this->load->view($viewName.".php",$viewData);

$this->load->view("includes/footer.php",$footerData); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM