2017-07-06 5 views
0
これは再び理解問題である

のうちのいくつかの行を取得する方法を、任意の説明は高く評価されていますは私のモデル

は私が前に、次のように機能するようになりましたことを、それが見えます、私の見解でのForeignKeyテーブルを表示するには問題がありました:

私が望んでいたが、非常に何

screenshot to show result

:私は最初の行のみを取得し が、もちろんいくつかの第二のコレクションである(それは、ファイル名と行です)。

それは次のようになります。これは、理由は私のモデルでは、私の方法は次のとおりです。もちろん

public function getImportU($unitid) 
{ 
    $unitid = (int) $unitid; 
    $rowset = $this->tableGateway->select(['UnitID' => $unitid]); 
    $row = $rowset->current(); 
    if (! $row) { 
     return null; 
    } 
    else{ 
     return $row; 
    } 
} 

私は、行オブジェクトを持っており、それは現在の行を返します。それはこのように見えたそのあとだから私は、[OK]を、私は行セットにしようと、考えた:

public function getImportU($unitid) 
{ 
    $unitid = (int) $unitid; 
    $rowset = $this->tableGateway->select(['UnitID' => $unitid]); 
    //$row = $rowset->current(); 
    if (! $rowset) { 
     return null; 
    } 
    else{ 
     return $rowset; 
    } 
} 

私が言ったいくつかのエラーだ:

お知らせ:未定義のプロパティ:Zendの\ Dbの\ ResultSetを\ recordcollectionを取得したResultSet :: BLOCKQUOTE

で$ Importdateそれでは、どのように、すべてのレコードは同じUNITIDとテーブルにあるのですか?そしてビューでそれらを呼び出す方法。おそらく大したことではありませんが、ドキュメントで使用できるものは何も見つかりませんでした。 EDIT1:関連コードを追加しています。ここで

私は私のコントローラindexAction内ViewModelを渡す:

return new ViewModel([ 
       'projects' => $this->projectTable->fetchAll(), 
       'dcls' => $this->table, 
        //'id' =>$this->authService, 
       ]); 

そして、ここで私のindex.phtmlをの抜粋:

foreach ($projects as $project) : 
//var_dump(get_object_vars($project)); 
?> 
    <tr> 
    <td><?= $project['Projectname']?></td> 
    <td><?= $project['ProjectShortcut']?></td> 
    <td><?= $project['ProjectCiNumber']?></td> 
    <td><?= $project['Unitname']?></td> 
    <td><?= $project['UnitShortcut']?></td> 
    <td><?= $project['UnitCiNumber']?></td> 
    <td><?= $project['UnitID']?></td> 
    </tr> 
    <?php 
    $dclsx=$dcls->getImportU($project['UnitID']); 
    // var_dump($dclss); 
    if (empty ($dclsx)==false){ ?> 
     <tr> 
     <th></th> 
     <th>filename</th> 
     <th>importdate</th> 
     <th>importuser</th> 
     <th>importok</th> 
     </tr> 
    <?php 
     $dclss=array($dclsx); 
    // var_dump($dclss); 
     foreach ($dclss as $dcl) : 
     ?> 
     <tr> 
      <td> </td> 
      <td><?= $dcl->filename?></td> 
      <td><?= $dcl->Importdate?></td> 
      <td><?= $dcl->Importuser?></td> 
     </tr> 
     ?php 
    endforeach; 
     } 
    endforeach; ?> 
+0

「getImportU()」が使用されているコードを追加してください。 –

+0

関連するコードを追加しました –

答えて

2

私はあなたが解決策にかなり接近していると信じています。

public function getImportU($unitid) 
{ 
    $unitid = (int) $unitid; 
    $rowset = $this->tableGateway->select(['UnitID' => $unitid]); 
    if (! $rowset) { 
     return null; 
    } 
    else{ 
     return $rowset; 
    } 
} 

あなたのビューから変更する必要があります:

<?php 
    $dclss=array($dclsx); 
// var_dump($dclss); 
    foreach ($dclss as $dcl) : 

へ:

<?php 
    foreach ($dclsx as $dcl) : 

$ dclsxがあり、私はそれを見るよう は "getImportUは、" 行セットを返すことが正しい解決策であります結果セットであり、反復することができますが、配列に入れるのは意味がありません。

また、「importdate」がブロッククォートテーブルに見つかりませんでした。 カラムがテーブルに存在するかどうかを確認してください(また、名前が大文字と小文字を区別しているかどうか、「Importdate」、「importdate」または「importDate」ですか)。

+0

はい、私のスクリーンショットでわかるように、その列が存在します。バ、あなたのソリューションはかなりうまくいくので、私はあなたの答えに投票します;-) –

関連する問題