2012-08-10 58 views
1

嗨在我看來,我試圖打印出我的數組中的信息時出現此錯誤。cakephp不能使用字符串偏移量作爲數組

這裏是我在控制器

public function view($name) 
$fields = $this->Template->Field->find('list',array( 
      'fields'=> array('name'), 
      'conditions' => array(
      'template_id'=> $name))); 
$this->set('field', $fields); 

功能這裏是視圖

</br><h2>Here is your template fields</h2></br> 

      <?php if(!empty($field)) 
        { 
        foreach($field as $name) 
        {?> 
         <tr> 
         <td> 
         <?php echo $name['Field']['name']; ?> 
         </tr></br> 
         <?php 
      } 
      } 
      else 
      {?> 
      <tr> <td>No Templates Found.</td></tr> 
      <?php 
      }?> 
+0

你會得到什麼錯誤? – 2012-08-10 12:26:18

+0

致命錯誤:無法使用字符串偏移量作爲與此行相關的數組<?php echo $ name ['Field'] ['name']; ?> – user1393064 2012-08-10 12:28:12

回答

2

正如我已經回答大家的一些問題。所以我對你的項目瞭解的是「Template hasMany Fields」,你已經在相應的模型中定義了一個關聯關係。

你應該使用下面的代碼到你的觀點:

<?php if(!empty($field)) 
       { 
       foreach($field as $name) 
       {?> 
        <tr> 
        <td> 
        <?php echo $name; ?> 
        </td> 
        </tr> 
        <?php 
     } 
     } 
     else 
     {?> 
     <tr> <td>No Template Fields Found.</td></tr> 
     <?php 
     }?> 
+0

嘗試上面的代碼並詢問它是否無效。 – 2012-08-10 12:32:19

+0

它被直要else語句:/ – user1393064 2012-08-10 12:34:21

+0

其打印出正確的信息 – user1393064 2012-08-10 12:40:06

0

你有一個類型列表操作,其結果將是在[field.id] => [field.name]

數組

那麼你將需要以下內容

<?php foreach($field as $name): ?> 
<?= $name ?> 
<?php endforeach ?> 
相關問題