Render из базы данных.

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
skobanev
Сообщения: 30
Зарегистрирован: 2019.06.17, 10:03

Render из базы данных.

Сообщение skobanev »

Добрый.
Скорее всего вопрос дикого новичка и тема не раз поднималась, но...
В общем дошел до момента, когда необходимо рендерить контент не из файла, а из БД. Тут я немного запутался, если можно, то помогите.
У меня настроен YII BASIC.
В стандартном решении, все представление ( php / html ) пишется в файл 'blabla.php' , Потом из контроллера вызывается $this->render('blabla') и вуаля, получаем страницу в браузере.
После некоторого изучения класса CONTROLLER, выявил метод renderContent( $blabla ), который, насколько я понял, рендерит только HTML контент. Уже лучше. Можно в админке сделать создание HTML страничек. Но даже про вызов виджетов можно напрочь забыть.
Начал присматриваться к TWIG / SMARTY, но насколько я понял, принцип данного действия такой же, как и у $this->render(), только через файл.

Помогите пож. понять в какую сторону копать.
Заранее благодарен.
Usick
Сообщения: 42
Зарегистрирован: 2017.04.11, 12:07

Re: Render из базы данных.

Сообщение Usick »

Думаю в сторону ActiveRecord и CRUD.
skynin
Сообщения: 400
Зарегистрирован: 2017.12.12, 10:09

Re: Render из базы данных.

Сообщение skynin »

skobanev писал(а): 2020.03.07, 09:53 Помогите пож. понять в какую сторону копать.
Для старта стоит прочесть
из Полное руководство по Yii 2.0:
https://www.yiiframework.com/doc/guide/2.0/ru
все до "Безопасность".
Это все там и написано.

Или посмотреть курсы на Youtube.

А то вы потеряете кучу времени на:
После некоторого изучения класса ... и "открытий" Потом из контроллера вызывается $this->render('blabla')
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
skobanev
Сообщения: 30
Зарегистрирован: 2019.06.17, 10:03

Re: Render из базы данных.

Сообщение skobanev »

skynin писал(а): 2020.03.07, 13:35 Для старта стоит прочесть
из Полное руководство по Yii 2.0:
https://www.yiiframework.com/doc/guide/2.0/ru
все до "Безопасность".
Это все там и написано.
Не поверите, но читал, и Сафронова тоже читал... ( дальше я наверно заткнусь.)

Я на самом деле не совсем понимаю, как сделать рендер из базы PHP / HTML кода штатными средствами.

Что такое ACTIVE RECORD и CRUD знаю хорошо.

Если у кого есть пример , попрошу поделиться.

Извините если кого обидел.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Render из базы данных.

Сообщение yiiliveext »

Как-то так
Контроллер
Изображение
Представление
Изображение
skobanev
Сообщения: 30
Зарегистрирован: 2019.06.17, 10:03

Re: Render из базы данных.

Сообщение skobanev »

((((( Вопрос был совсем не об этом ((((
Я судя по всему как то не так выражаю свои мысли, что никто понять не может. За это извините.
Спрошу по другому.

Я беру весь код файла представления( и HTML и PHP ) и кладу в поле таблицы.
Как мне отрендерить не файл представления, а поле таблицы с теме же данными.
Если я в самописной админке буду создавать страницу, то не буду же писать код страницы в файл представления, и добавлять Экшн на контроллер. - Я буду писать в базу. И рендерить тоже хотелось бы из базы.


render() - Позволяет рендерить только файл.
а renderContent() - совершенно не понимает php вставки.
Вот я и спросил, как мне отрендерить контент из базы, а не из файла.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Render из базы данных.

Сообщение yiiliveext »

skobanev писал(а): 2020.03.08, 00:14 Я беру весь код файла представления( и HTML и PHP ) и кладу в поле таблицы.
Напуркуа?
skobanev
Сообщения: 30
Зарегистрирован: 2019.06.17, 10:03

Re: Render из базы данных.

Сообщение skobanev »

Ну а как ? Где мне хранить контент страницы ? в файле ? Я тогда логику процесса совсем не понимаю.
Последний раз редактировалось skobanev 2020.03.08, 00:25, всего редактировалось 1 раз.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Render из базы данных.

Сообщение yiiliveext »

skobanev писал(а): 2020.03.08, 00:23 Ну а как ? Где мне хранить контент страницы ? в файле ?
В поле таблицы, выводить передавая модель в представление и делая в нем <?= $model->content?>
Сам шаблон представления в файле остается.
skobanev
Сообщения: 30
Зарегистрирован: 2019.06.17, 10:03

Re: Render из базы данных.

Сообщение skobanev »

Сразу вопрос.
Вот такие php вставки будут рендерится ?
<?= \app\widgets\navigation:widget([ $catId => 2]) ?> Или они будут отсекатся либо текстом выводится ?
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Render из базы данных.

Сообщение yiiliveext »

В контенте только html должен быть.Если на странице есть виджеты, то они должны быть в файле представления.
skobanev
Сообщения: 30
Зарегистрирован: 2019.06.17, 10:03

Re: Render из базы данных.

Сообщение skobanev »

Так вот я о чем и спрашиваю. Чтоб я рендерил код представления ( И PHP и HTML ) из базы, а не из файла. Включая виджеты и PHP код. Скорее всего этот вопрос уже поднимался. Только я что то не могу на него найти ответ.
В джумле был плагин, который позволял вставлять PHP код в контент страницы. можно было молули вызывать типа { moduleid 40 }... Вот и я так же хочу. Если такое вообще возможно.
Можно конечно при вызове страницы писать все в файл и рендерить его, но это нагрузка на сервер. Хотя если генерировать файлы правильно, то генерация нужна лишь раз, а логика потом будет проверять на нахождение файла. Типа если файл есть, то читать его. Но придется следить за версионностью при редактировании страницы в админке. Мол если была запись, то удалять файл. А Дальше при открытии, он перегенерится заного. Бред, но чтобы не городить огороды, то можно
Последний раз редактировалось skobanev 2020.03.08, 00:42, всего редактировалось 1 раз.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Render из базы данных.

Сообщение yiiliveext »

skobanev писал(а): 2020.03.08, 00:32 Так вот я о чем и спрашиваю. Чтоб я рендерил код представления ( И PHP и HTML ) из базы, а не из файла. Включая виджеты и PHP код. Скорее всего этот вопрос уже поднимался. Только я что то не могу на него найти ответ.
В джумле был плагин, который позволял вставлять PHP код в контент страницы. можно было молули вызывать типа { moduleid 40 }... Вот и я так же хочу. Если такое вообще возможно.
Я не понимаю смысл этой операции, зачем хранить php код в базе?
Ну можно, конечно, но его надо будет писать во временный файл и рендерить все равно из файла.
skobanev
Сообщения: 30
Зарегистрирован: 2019.06.17, 10:03

Re: Render из базы данных.

Сообщение skobanev »

Я как раз отредактировал предыдущий пост.
Гибкость хочу. Чтоб не лезть в код. А чтоб из админки можно было контентом руководить.
На сегодняшний день мне с провайдером Извините, с Хостингом. ( уже голова не работает ) легче по HTTP работать. FTP ужасный, а SSH 60 сек сессия по моему. Сосредоточится не успеваю.
Последний раз редактировалось skobanev 2020.03.08, 00:49, всего редактировалось 2 раза.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Render из базы данных.

Сообщение yiiliveext »

skobanev писал(а): 2020.03.08, 00:43 Я как раз отредактировал предыдущий пост.
Для этих целей в yii2 есть кеширование страниц представлений, ничего выдумывать не нужно.
https://www.yiiframework.com/doc/guide/ ... ching-page
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Render из базы данных.

Сообщение yiiliveext »

skobanev писал(а): 2020.03.08, 00:43 Гибкость хочу. Чтоб не лезть в код. А чтоб из админки можно было контентом руководить.
На сегодняшний день мне с провайдером легче по HTTP работать. FTP ужасный, а SSH 60 сек сессия по моему. Сосредоточится не успеваю.
Для этого не нужно хранить php код в базе.
skobanev
Сообщения: 30
Зарегистрирован: 2019.06.17, 10:03

Re: Render из базы данных.

Сообщение skobanev »

А логику можно ?
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Render из базы данных.

Сообщение yiiliveext »

skobanev писал(а): 2020.03.08, 00:50 А логику можно ?
Какую? Если хотите редактировать шаблоны представлений из админки, то это можно и с файлами делать.
Но это весьма порочная практика, попадание злоумышленника в админку приведет к получению контроля над сервером.
Как минимум нужно какой-то дополнительный шаблонизатор юзать вроде twig.
skobanev
Сообщения: 30
Зарегистрирован: 2019.06.17, 10:03

Re: Render из базы данных.

Сообщение skobanev »

Вот.
Спасибо тебе еще раз добрый человек, Второй раз мне правильное направление даешь.
Буду курить шаблонизаторы.
Еще раз спасибо.
Тут кстати единственное место где ответы получить можно.
Ответить