2012-03-06 6 views
0

cakephpでは、mysqlからデータを取得して配列に割り当てますが、ビューの各要素を再利用することはできません。私は次の形式ビューで使用する配列オブジェクトを設定する

Array ([0]=>Array([user]=>Array([something]=>somevalue [somethingelse]=>someotherValue)) 
    [1]=>Array([user]=>Array([something]=>somevalue [somethingelse]=>someotherValue)) 
    .......) 

を持っている、データベースからデータを照会するためにモデルを呼び出し、次のように私は$の結果は、私のすぐにパスに表示できる配列をinitilizeコントローラで

配列はデータベースから取得します。

$i=0; 
foreach($result as $row) 
{ 
    $exportDt[$i]['something']=$row['user'][something]; 
    $exportDt[$i]['somethingelse']=$row['user'][somethingelse]; 
} 

this->set($exportDt); 

ビューでこのexportDt配列を再利用するにはどうすればよいですか?私は、1つのdim配列しか設定できないと考えています。

答えて

1

あなただけ(つまりビューにコントローラから変数を渡す)変数を設定するための正しい構文を使用する必要が表示されます。

//controller 
$this->set('exportDt', $exportDt); 

//view 
print_r($exportDt); 

$this->set()ための最初のパラメータは、その変数の名前です。あなたはビューからアクセスしたい。 2番目はその変数に入れるデータです。

したがって、たとえば、あなたも他の名前を使用することができます。

​​

別の一般的な方法は、PHPのcompactを使用することです。これは、=>値

...コンパクトは() 現在のシンボルテーブルにその名前を持つ変数を検索し、文字列(複数可)の名前で変数を検索し、名前を持つ配列を作成します の変数名がキーになり、変数の内容がそのキーの値である になるように出力配列に追加します。つまり、extract()の逆です。

例:

//controller 
$this->set(compact('exportDt'); 

//view 
$print_r($exportDt); 

より一般的には、それは複数の変数とともに使用されます:

//controller 
$var1 = 'whatever'; 
$myVar = 'something else'; 
$anotherVar = true; 
$this->set(compact('var1', 'myVar', 'anotherVar')); 

//view 
echo $var1. ' ' . $anotherVar . ' ' . $myVar; 
1

コントローラ部

$this->set('exportDt', $exportDt); 

ビュー一部

.ctpファイルの配列として$ exportDtに直接アクセスすることができます

ありがとう

関連する問題