Ну тут нужно не совсем то.
Вот эта конструкция:
function __construct()
{
parent::__construct(new \Users\Model\Api()); //Указываем API с которым будет возвращаться вывод
}
Нужно указать здесь API для вывода информации. В Вашем случае, нужно обращение к таблице с элементами заказа, которая описывается в \Shop\Model\Orm\Orderitem. API которое с этими ORM объектами работает в данном случае не существует.
Поэтому Вы создёте у себя класс АПИ и указываете наследование от EntityList, и указать объект, с которым будет работать АПИ. Например:
class MyApi extends \RS\Module\AbstractModel\EntityList
{
function __construct()
{
parent::__construct(new \Shop\Model\Orm\OrderItem, //С какой таблицей через ORM объект работать
array(
'multisite' => false, //Объект является не мультисайтовым (без поля site_id)
'defaultOrder' => 'id DESC' //Сортировка по умолчанию при выборке
));
}
}
Соответственно нужно будет указать своё API для работы CRUD контроллера.
В самом helperIndex можно уточнить запрос по умолчанию, расширив его запросом. В этом классе сам объект апи находится в $this->api. Мы можешь получить объект запроса \RS\ORM\Request через метод queryObj() . Ну например:
function helperIndex()
{
$helper = parent::helperIndex();
$q = $this->api->queryObj();
$q->where(
//Моё нужное условие
);
А сами поля вывода, если Вы заметили описываются здесь:
$helper->setTable(new Table\Element(array(
'Columns' => array(
new TableType\Checkbox('id', array('showSelectAll' => true)),
new TableType\String('id', '№', array('ThAttr' => array('width' => '50'), 'Sortable' => SORTABLE_BOTH, 'CurrentSort' => SORTABLE_DESC)),
new TableType\String('login', t('Логин'), array('href' => $edit_pattern, 'Sortable' => SORTABLE_BOTH, 'linkAttr' => array('class' => 'crud-edit'))),
))));
Поменяйте под себя.