FrontEnd контроллеры в OctoberCMS

В OctoberCMS нет концепции frontEnd контроллеров. Иными словами, идеология этой CMS не подразумевает возможность просто создать некий ProductController с несколькими action для обслуживания маршрутов Route::method('product/{id}', 'ProductController@show'). Вместо этого предлагается использовать компоненты плагинов. Именно компоненты являются формой frontEnd контроллеров.

Алгоритм получается следующий:

  • Создаем плагин
  • Разрабатыаем функциональность как компонент плагина
  • Создаем страницу CMS, прописываем нужный URL
  • Прицепляем к странице компонент
  • На нужном URL получаем функциональность

Альтернативой идеологии OctoberCMS является традиционные routes из laravel. Samuel Georges, один из создателей OctoberCMS, опубликовал пример плагина, который показыает как это работает. Вкратце:

  • Создаем плагин
  • В корень кладем файл routes.php, где регистрируем маршруты.
    Route::get('/welcome', 'authorName\pluginName\WelcomeController@index');

    Если что-то не работает через routes.php, то в первую очередь следует добавить 'middleware' => 'web'

  • В корне создаем контроллер WelcomeController.php
namespace authorName\pluginName;
use Illuminate\Routing\Controller;

class WelcomeController extends Controller
{
    /**
     * Show 'Hello World' message.
     *
     * @return Response
     */
    public function index()
    {
        return 'Hello World';
    }
}
  • Прикручиваем Response::view и наслаждаемся результатом

Routing initialization on octobercms.com

Похожие записи

Собственные сообщения об ошибках валидации форм OctoberCMS

Во время разработки модели данных OctoberCMS при необходимости, можно использовать собственные сообщения об ошибках валидации полей формы вместо сообщения The :attribute field is required. по-умолчанию. В статье показывается как, достаточно просто, это делается.

OctoberCMS. Ошибка RelationController: "Не удалось найти шаблон (partial) ... traits\ViewMaker.php"

В контроллере поведения RelationController при нажатии на кнопке "Cоздание" вылетает ошибка с подобным содержаним

"Не удалось найти шаблон (partial) с именем _comments.htm." on line 91
of ...\modules\system\traits\ViewMaker.php