如何在模板中渲染has_many?

ale*_*lex 0 php silverstripe

我有两个类:LetterLetterFiles(附件中的文件):

class Letter extends DataObject {
    private static $db = array(
        'Sender' => 'Text',
        'SendTo' => 'Text',
        ...
    );

    private static $has_many = array(
        'Letters' => 'LetterFiles'
    );
    ...
}

class LetterFiles extends File {
    private static $has_one = array(
        'Files' => 'Letter'
    );
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想在上面显示所有字母和所有附件LetterPage:

class LetterPage extends Page {
}

class LetterPage_Controller extends Page_Controller {
    public function index() {
        $letters = Letter::get()->sort('DateUpload');
        return array(
            'AllLetters' => $letters
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用模板LetterPage.ss:

   <% loop $AllLetters %>
        <tr>
            ...
            <td>$Sender</td>
            <td>$SendTo</td>
            <td>$Theme</td>
            <td>
                  <% loop $Files %>
                      $Name
                  <% end_loop %>
            </td>
        </tr>
   <% end_loop %>
Run Code Online (Sandbox Code Playgroud)

但是<% loop $Files %>不起作用.如何在此模板中显示附件?

Lor*_*ntz 5

认为你只是使用错误的关系名称,应该是字母而不是文件:

<% loop AllLetters %>
    $Sender
    $SendTo
    <% loop Letters %>
        $ID
    <% end_loop %>
<% end_loop %>
Run Code Online (Sandbox Code Playgroud)