Использование экшенов в фронтенде

В бэкенде все работает. Например запрос типа http://billroad.ru/webasyst/billroad/?action=123 либо работает либо  выдает ошибку, если такого экшена нет

В фронтенде вбиваю любой текст, никакой реакции и никаких ошибок.

Куда копать?

10 ответов

    • -8
      Yaroslav Egorov Yaroslav Egorov 28 февраля 2020 09:41 #

      Дать ссылка на доку это очень классная помощь. Ой спасибо помог по гроб жизни обязан. Хелпер блин!

      • +1
        Vaslav24 Vaslav24 28 февраля 2020 12:32 #

        Странный вы человек. Вот я из интереса глянул по предложенной вам ссылке и там подробный и развёрнутый ответ на ваш вопрос. Причём, это первоисточник, а не вольный пересказ. Что же вас не устраивает?

        • 0
          Yaroslav Egorov Yaroslav Egorov 28 февраля 2020 12:59 #

          Дать ссылку на документацию дело не хитрое. Ну я читал  эту документацию. Документация написана скудно и хреново.  В ней написано про внутренний роутинг приложения через файл routing.php Мне не понятно можно ли этим управлять. Мне что под каждый экшен этот файл править чтоли? Это вообще зачем?

          • +1
            Алексей Алексей Webasyst 28 февраля 2020 13:30 #

            Если у вас простое приложение с одним action то можете просто создать файл файл wa-apps/{APP_ID}/lib/config/routing.php

            С содержимым

            <?php 
            return array(
                '*' => 'frontend/action'
            ); 

            Если несколько, то уже здесь можете группировать

            <?php
            return array (
                'order/' => 'frontend/order'
                'bill/' => 'frontend/bill',
                '*' => 'frontend'
            );

            • +1
              Yaroslav Egorov Yaroslav Egorov 28 февраля 2020 13:51 #

              Приложение сложное. Логика в фронтенде отличаестя от логике в бэкенде из-за чего? Безопасность?

          • +2

            Речь о фронтенде? Значит у приложения/плагина должен быть контроллер "слушающий" определенный в роутинге URL. Какой URL какой контроллер слушает - задается в routing.php вашего плагина/приложения

  • 1
    Yaroslav Egorov 2 марта 2020 23:20 #

    Что-то не догоняю я как прописать роутинг вот для такого адреса http://site/app/?module=Org&action=edit&id=17


    • +2
      Михаил Ушенин Михаил Ушенин Webasyst 3 марта 2020 08:25 #

      Напишите для адреса вида http://site/app/org/edit/17/

      'org/edit/<id>/' => 'org/edit',

      Контроллер, который будет обрабатывать запросы к такому адресу, должен быть описан в файле wa-apps/app/lib/actions/org/appOrgEdit.action.php, и имя класса должно быть appOrgEditAction (если по этому адресу нужно отдавать HTML-код), или в файле wa-apps/app/lib/actions/org/appOrgEdit.controller.php, и имя класса должно быть appOrgEditController (если нужно выполнять какие-то другие действия).

      • +1
        Yaroslav Egorov Yaroslav Egorov 3 марта 2020 10:44 #

        У меня создан класс appOrgActions extends waViewActions

        а в нем ужe public function editAction() которая хавает параметр id

        Сильно разница?

        Сделал запись как Вы сказали, она не работает. Работает вот так:

        'org/edit/<id>' => 'org/edit',

          Не жрала параметр, но с этим я разобрался, тк там исп функция param вместо get :)

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите