2013-06-05 27 views
4

我使用phil sturgeon創建的相同模板庫,併爲控制面板設置了以下佈局。我收到這個錯誤。我在控制面板控制器的模板變量上運行了一個var_dump,它顯示了控制面板視圖的字符串,但是當我在內容視圖中執行相同的操作時,它說沒有主體索引。我想知道如何將數據傳遞給內容視圖。在模板內部進一步傳遞

對我而言有什麼想法?

Severity: Notice 

Message: Undefined index: body 

Filename: partials/content.php 

Line Number: 8 

控制面板控制器

<?php 

if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Controlpanel extends Backend_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function index() 
    { 
     $this->template 
      ->title('Control Panel') 
      ->set_layout('controlpanel') 
      ->set_partial('header', 'partials/header') 
      ->set_partial('sidebar', 'partials/sidebar') 
      ->set_partial('breadcrumbs', 'partials/breadcrumbs') 
      ->set_partial('content', 'partials/content') 
      ->set('user_data', $this->users_model->get($this->session->userdata('uid'))) 
      ->build('dashboard'); 
    } 
} 

content.php

<div id="content"> 

    <!-- Insert Header --> 
    <?php echo $template['partials']['breadcrumbs']; ?> 

    <div class="separator bottom"></div> 

    <?php echo $template['body']; ?> 

</div> 

我試圖尋找到這一點,還沒有找到一個解決方案。我希望別人可能會看到我不是。

+0

我以前沒有使用過該庫,但它看起來有趣。基於文檔,我猜測部分不會像模板一樣自動設置「body」變量。嘗試這樣的? 'set_partial('content','partials/content',array('user_data'=> ...))' –

+0

是的,因爲某種原因,我嘗試了一些類似的東西,沒有得到任何東西。 –

回答

1

傳遞對象時,通過

$this->template->set('data_name', $my_object); 

只是將它轉換爲數組我用他的圖書館也是如此,並得到了一些民族問題。

$this->template->set('data_name', (array) $my_object); 
+0

我想我只是困惑,因爲我的意思是我有我的模板和構建方法它告訴它什麼樣的視圖將被加載,但與我的控制面板模板它有一個標題,側邊欄和內容部分。內容部分的內容是麪包屑部分和構建應該得到的身體區域。 –

+0

剛剛在這裏嘗試過。我認爲你不能在局部使用模板['body']。有沒有地方你做到了,它的工作? – Klamir

+0

我認爲@Klamir是對的。我認爲你也不能在局部使用'$ template ['title']'(和其他)'。 – furas

1

我以下工作:

$this->template->set('body', $body); 

然後在我看來(使用PyroCMS法解析器):

{{ body }} 

或者,您也可以分配一個數組來設置方法:

// $頁面來自db查詢

$this->template->set('page', $page); 

然後在視圖:

{{ page->body }}