Welcome Guest, Not a member yet? Register   Sign In
Is it possible to use nested loops in parser templates?
#1

I am not sure if nested loops are supported by the parser, at least I am not able to display the following template correctly:
Code:
<table class="data_table">
  <thead>
    <tr>
      {header_entries}
        <th>{header_title}</th>
      {/header_entries}
    </tr>
  </thead>
  <tbody>
    {data_entries}
      <tr>
        {data_row}
          <td>{data_cell}</td>
        {/data_row}
      </tr>
    {/data_entries}
  </tbody>
</table>

The headers works but not the table's body when using these data:


Code:
   $header_entries = [['header_title' => 'one'],
                      ['header_title' => 'two']];
   $data_entries = [['data_row' => [['data_cell' => 'one - one'],
                                    ['data_cell' => 'one - two']],
                     'data_row' => [['data_cell' => 'two - one'],
                                    ['data_cell' => 'two - two']]]];
   $parser = \Config\Services::parser();
   echo $parser->setData(['header_entries' => $header_entries,
                          'data_entries' => $data_entries])->render('templates/data_table_template');
Reply
#2

If you want nested variables to also see the level above them, then you need to pass true as a second parameter to the render() call. See https://codeigniter4.github.io/CodeIgnit...er-options
Reply
#3

(03-06-2019, 05:37 PM)ciadmin Wrote: If you want nested variables to also see the level above them, then you need to pass true as a second parameter to the render() call. See https://codeigniter4.github.io/CodeIgnit...er-options

No, this is not I would like to do. I just would like to have two nested loops. But this does not seem to work because the output is:

Quote:-->header: one two
-->body: two - one two - two
The header loop is correct but the second (inner) loop is not. Only the last result of the loop is used.
Reply
#4

The view parser supports "cascading data", but not "nested loops" the way you are looking for.
I suggest adding a feature request for this, if needed for your app... https://forum.codeigniter.com/forum-29.html
Reply




Theme © iAndrew 2016 - Forum software by © MyBB