Задать вопрос
@veldeta

Работа с контроллерами в 1с-битрикс?

Во время обучение 1с-битрик для программистов. На уроке с Контроллерами, я сделал пример в точности, но мне выдает ошибку: "There is no configuration in vendor.example with 'controllers' value.".
.settings.php
return array(
    'controllers' => array(
        'value' => array(
            'defaultNamespace' => '\\Vendor\\Example\\Controller',
        ),
        'readonly' => true,
    ),
);

контроллер, находиться в vendor.example->lib->controller->item.php
namespace Vendor\Example\Controller;

use \Bitrix\Main\Error;

class Item extends \Bitrix\Main\Engine\Controller
{
    public function addAction(array $fields):? array
    {
        $item = Item::add($fields);

        if (!$item)
        {
            $this->addError(new Error('Could not create item.'));

            return null;
        }

        return $item->toArray();
    }

    public function viewAction($id):? array
    {
        $item = Item::getById($id);
        if (!$item)
        {
            $this->addError(new Error('Could not find item.'));
                    
            return null;
        } 

        return $item->toArray();
    }
}

так же делаю обращаюсь через BX.ajax.runAction('vendor:example.Item.add',{}).
  • Вопрос задан
  • 810 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
У вас нет метода init с конфигурацией экшенов - добавьте что-то такое:

private $actionsConfig = [
            'view' => [
                   '-prefilters' => [
                           '\Bitrix\Main\Engine\ActionFilter\Authentication'
                       ]
                   ],
            'add' => [
                '-prefilters' => [
                        '\Bitrix\Main\Engine\ActionFilter\Authentication'
                    ]
            ]

    protected function init()
    {
        parent::init();
        foreach ($this->actionsConfig as $name=>$arConfig) $this->setActionConfig($name, $arConfig);
    }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы