以下のようなテーブル内にあるフォームがあります。これが送信されたときに実行される Modx スニペットがあり、送信された入力配列に基づいて、複数の新しいリソースを作成する必要があります。
<table class="table responsive-table">
<thead>
<th>pagetitle</th>
<th>longtitle</th>
</thead>
<tbody>
<tr>
<td><input type="text" name="pagetitle[]" value="" /></td>
<td><input type="text" name="longtitle[]" value=""/></td>
</tr>
<tr>
<td><input type="text" name="pagetitle[]" value="" /></td>
<td><input type="text" name="longtitle[]" value=""/></td>
</tr>
</tbody>
</table>
以下を実行すると、期待どおりに新しいリソースが作成されますが、すべてのフィールドが「配列」に設定されます。配列の値ではありません。
<?php
$allFormFields = $hook->getValues();
foreach ($allFormFields as $key => $value)
{
$doc = $modx->newObject('modResource');
$doc->set('createdby', $modx->user->get('id'));
$doc->set('pagetitle', $value['pagetitle']);
$doc->set('longtitle', $value['longtitle']);
$doc->save();
}
return true;