2016-06-08 5 views
2

나는 3 개 부분 Codeigniter를 사용하여 여러보기를로드하는 가장 좋은 옵션은 무엇입니까?

header.php 
index.php 
footer.php 

에 함수에서 여러보기 나누어 페이지를로드 할 그리고 난이 일을 오전 :
$this->load->view('templates/header', $data); 
$this->load->view('index'); 
$this->load->view('templates/footer'); 

하지만이에 내가 어떤 JQuery와 파일을 추가 할 경우의

footer.php 위의 코드에서 불가능합니다.

나는 내가 많은 기사

사용

에서 본 또 다른 방법은 다음과 같이보기 인덱스 페이지의 기능을 포함한다 :

<?php include('header.php'); ?> 
<?php include('footer.php'); ?> 

을하지만 footer.php 후 몇 JQuery와 파일을 추가하면 위에서 가능 코드 (코드 포함).

그러나 나는 이것을 좋아한다. load->view 내 요구 사항과 함께 사용할 수 있습니까? 아니면이 기능을 포함시키는 것이 가장 좋나요?

+0

당신이'배열 ('a.js'와 같은 배열로 JS 파일 이름의 목록을 전달하여로드 -> view', 당신이 할 수있는'사용 footer.php에서 일부 JS 파일을 포함 할 경우, 'b.js')'를 footer.php'load-> view'에 저장하고 head.php/footer.php에 별도의 도우미 기능을 추가하여 js 이름 목록 (있는 경우)을 가져 와서 적절한 명시 적 링크를 구성합니다 코드에 삽입하십시오. – coderz

답변

2

컨트롤러뿐만 아니라 각보기 내부에서 $ this-load-> view를 사용할 수 있습니다.

index.php보기 파일의 맨 위에 머리글을로드하고 하단에는 바닥 글을로드 할 수 있습니다.

나는 CodeIgniter에서 include()을 사용하지 않을 것입니다. CI에는 내부에서 사용해야하는 모든 것을위한 로더가 있습니다.

더 좋은 방법은 템플릿을로드 할 라이브러리 또는 모델을 정의하는 것입니다.이 방법을 사용하면 상단 또는 하단에 포함 된 파일을 변경하려는 경우 모든보기를 변경할 필요가 없습니다. 더우기, 각 컨트롤러를 기반으로이 js, css, seo 메타 데이터 등을로드 할 수 있습니다.


(의 모델의 길을 가자)되어이를 달성하는 방법 :

  1. 그 데이터를 $ 수신 렌더링 기능을 TemplateModel라는 모델을 생성합니다. $data에서
  2. 당신은 키를 정의 할 수 있습니다 : JS, CSS, SEO, 내용 등
  3. 로드에게 레이아웃을 모델 내부에서 $this->load->view('template', $data)와 함께. 컨트롤러에서
  4. , (예를 들어 index.php에 대한) 데이터로보기를 반환하고 $data['content']으로 모델에 보내 : https://www.codeigniter.com/user_guide/general/views.html#returning-views-as-data 예 :

    $this->load-model('templateModel', 'template'); 
    $data['content'] = $this->load->view('index', '', TRUE); 
    $this->template->render($data); 
    
  5. 를 모델, 인쇄에 의해 렌더링 뷰에서 표시 할 내용 (btw 머리글 및 바닥 글)

관련 문제