2016-10-01 30 views
0

我試圖打印列名稱和它的值使用我的表中每列的foreach循環。我想這個代碼Yii2使用循環打印列名稱和它的值

$contentAfter = DepCustomer::findOne($id); 
echo $contentAfter->customer_id; 
echo $contentAfter->account_no; 
echo $contentAfter->name; 
echo $contentAfter->address; 
echo $contentAfter->gender; 

以這種方式

$contentAfter = DepCustomer::findOne($id); 
foreach($contentAfter as $name => $value){ 
    echo $name .': '. $value; 
} 

我一直在使用asArray(試過被執行)也但我發現了錯誤。

+0

第二個代碼塊是正確的。你看到了什麼錯誤? – SilverFire

+0

你得到哪個錯誤? – Mohan

+0

謝謝大家。我解決了我的問題。早些時候,我正在'調用未知方法'。也許我忽略了一些東西我再一次寫了上面給出的代碼。現在它正在工作。再次感謝。 – gojiraki

回答

0

您應該使用asArray獲取數組而不是對象。 此外在foreach代碼應該在{被encolsed}呼應應該在所有

$contentAfter = DepCustomer::find->where(['id'=> $id])->asArray()->one(); 
    foreach($contentAfter as $name => $value) { 

    echo $name .':' . $value->customer_id . '<br />'; 
    echo $name .':' . $value->account_no . '<br />'; 
    echo $name .':' . $value->name . '<br />'; 
    echo $name .':' . $value->address . '<br />'; 
    echo $name .':' . $value->gender . '<br />'; 

    } 
+0

感謝您的答案,但這不是我想要實現的。我認爲我的問題有些模糊。對不起。我想用循環打印列名和它的值,而不是打印每一列。 – gojiraki

+0

@gojiraki。我已更新答案希望是你在找什麼 – scaisEdge

0

你想在屏幕上打印的列?也許你可以試試這個。 如果你想打印物體DepCustomer單列,你可以使用的print_r

$contentAfter = DepCustomer::findOne($id); 
echo '<pre>'; 
print_r($contentAfter); 
echo '</pre>'; 

如果YOUT想打印物體的多行,可以使用的foreach和print_r的

$contentAfter = DepCustomer::find()->where()->all(); 
foreach($contentAfter as $v){ 
    echo '<pre>'; 
    print_r($v); 
    echo '</pre>'; 
    echo '<br/>'; 
} 

我希望它幫你

+0

謝謝你的回答。我解決了我的問題。早些時候我正在'調用未知方法'。也許我忽略了一些東西我再一次寫了上面給出的代碼。現在它正在工作 – gojiraki