2011-05-05 47 views
0
<pre class="cake-debug"> 
Array 
(
[0] => Array 
    (
     [Qnote] => Array 
      (
       [id] => 67 
       [subject] => Call Closing 
       [body] => Gave Information 

       [user_id] => 39 
      ) 

     [Step] => Array 
      (
       [0] => Array 
        (
         [id] => 2 
         [user_id] => 39 
         [qnote_id] => 67 
         [type] => a 
         [body] => This is a text 
        ) 

       [1] => Array 
        (
         [id] => 3 
         [user_id] => 39 
         [qnote_id] => 67 
         [type] => a 
         [body] => This is userid 39 

        ) 



      ) 

    ) 

中提取信息)從Array

您好,我想從這個數組

<?php foreach($data as $qnote): ?> 
<?php echo $qnote['Qnote']['id']; ?> // Works 
<?php echo $qnote['Qnote']['body']; ?> //Works 
<?php echo $qnote['Step']['body']; ?> // Doesnt Work ???? 
<?php endforeach; ?> 

什麼拉起步數據以正確的方式提取數據。 有人請指點我正確的方向。

控制器代碼:

function view($id = null) {   
$this->Qnote->id = $id; 
$userID = $this->Authsome->get('id');  

$this->paginate = array(

'conditions' => array(
'Qnote.id LIKE' => $id), 
    ); 
$data = $this->paginate('Qnote'); 
$this->set('data', $data); 
} 
+0

BTW,沒有必要' 'Qnote.id LIKE'=> $ id'。 SQL'LIKE'比較比直接比較'='要慢很多,而且一個數字只能是一個數字。擺脫'LIKE'。 – deceze 2011-05-05 10:21:31

回答

2

$qnote['Step']也是一個多維數組,所以你通過它需要循環太:

<?php foreach ($data as $qnote) : ?> 
    <p>Id: <?php echo $qnote['Qnote']['id']; ?></p> 
    <p>Body: <?php echo $qnote['Qnote']['body']; ?></p> 
    <p> 
     Steps: 
     <ul> 
      <?php foreach ($qnote['Step'] as $step) : ?> 
       <li><?php echo $step['body']; ?></li> 
      <?php endforeach; ?> 
     </ul> 
    </p> 
<?php endforeach; ?> 
0

請記:

<?php echo $qnote['Step']['body']; ?> // Doesnt Work ???? 

其中$qnote['Step']是:

[Step] => Array 
(
    [0] => Array 
    (
     [id] => 2 
     [user_id] => 39 
     [qnote_id] => 67 
     [type] => a 
     [body] => This is a text 
    ) 
    [1] => Array 
    (
     [id] => 3 
     [user_id] => 39 
     [qnote_id] => 67 
     [type] => a 
     [body] => This is userid 39 
    ) 
) 

沒有$qnote['Step']['body']。雖然有$qnote['Step'][1]['body']

如果你想在$qnote['Step']訪問所有['body'] S,使用foreach

foreach($qnote['Step'] as $step) 
{ 
    echo $step['body']; 
} 

編輯:關於第二個想法,還注意到「步驟」不是「Qnote」的成員(也可能不是$ qnote。)您可能首先要解決這個問題。

+1

「再次思考」:這是一個標準的Cake結果數組。 'Qnote'是主要的模型,'Step'是一個相關的hasMany或HABTM模型。它的方式很好。 :) – deceze 2011-05-05 10:16:07

+0

啊,好吧。是的,我從來沒有用過Cake(顯然)。 – 2011-05-05 10:17:02