Render из базы данных.
Render из базы данных.
Добрый.
Скорее всего вопрос дикого новичка и тема не раз поднималась, но...
В общем дошел до момента, когда необходимо рендерить контент не из файла, а из БД. Тут я немного запутался, если можно, то помогите.
У меня настроен YII BASIC.
В стандартном решении, все представление ( php / html ) пишется в файл 'blabla.php' , Потом из контроллера вызывается $this->render('blabla') и вуаля, получаем страницу в браузере.
После некоторого изучения класса CONTROLLER, выявил метод renderContent( $blabla ), который, насколько я понял, рендерит только HTML контент. Уже лучше. Можно в админке сделать создание HTML страничек. Но даже про вызов виджетов можно напрочь забыть.
Начал присматриваться к TWIG / SMARTY, но насколько я понял, принцип данного действия такой же, как и у $this->render(), только через файл.
Помогите пож. понять в какую сторону копать.
Заранее благодарен.
Скорее всего вопрос дикого новичка и тема не раз поднималась, но...
В общем дошел до момента, когда необходимо рендерить контент не из файла, а из БД. Тут я немного запутался, если можно, то помогите.
У меня настроен YII BASIC.
В стандартном решении, все представление ( php / html ) пишется в файл 'blabla.php' , Потом из контроллера вызывается $this->render('blabla') и вуаля, получаем страницу в браузере.
После некоторого изучения класса CONTROLLER, выявил метод renderContent( $blabla ), который, насколько я понял, рендерит только HTML контент. Уже лучше. Можно в админке сделать создание HTML страничек. Но даже про вызов виджетов можно напрочь забыть.
Начал присматриваться к TWIG / SMARTY, но насколько я понял, принцип данного действия такой же, как и у $this->render(), только через файл.
Помогите пож. понять в какую сторону копать.
Заранее благодарен.
Re: Render из базы данных.
Думаю в сторону ActiveRecord и CRUD.
Re: Render из базы данных.
Для старта стоит прочесть
из Полное руководство по Yii 2.0:
https://www.yiiframework.com/doc/guide/2.0/ru
все до "Безопасность".
Это все там и написано.
Или посмотреть курсы на Youtube.
А то вы потеряете кучу времени на:
После некоторого изучения класса ... и "открытий" Потом из контроллера вызывается $this->render('blabla')
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
Тем более что окажется что оно вам и не нужно было, странное это.
Re: Render из базы данных.
Не поверите, но читал, и Сафронова тоже читал... ( дальше я наверно заткнусь.)skynin писал(а): ↑2020.03.07, 13:35 Для старта стоит прочесть
из Полное руководство по Yii 2.0:
https://www.yiiframework.com/doc/guide/2.0/ru
все до "Безопасность".
Это все там и написано.
Я на самом деле не совсем понимаю, как сделать рендер из базы PHP / HTML кода штатными средствами.
Что такое ACTIVE RECORD и CRUD знаю хорошо.
Если у кого есть пример , попрошу поделиться.
Извините если кого обидел.
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: Render из базы данных.
Как-то так
Контроллер
Представление
Контроллер
Представление
Re: Render из базы данных.
((((( Вопрос был совсем не об этом ((((
Я судя по всему как то не так выражаю свои мысли, что никто понять не может. За это извините.
Спрошу по другому.
Я беру весь код файла представления( и HTML и PHP ) и кладу в поле таблицы.
Как мне отрендерить не файл представления, а поле таблицы с теме же данными.
Если я в самописной админке буду создавать страницу, то не буду же писать код страницы в файл представления, и добавлять Экшн на контроллер. - Я буду писать в базу. И рендерить тоже хотелось бы из базы.
render() - Позволяет рендерить только файл.
а renderContent() - совершенно не понимает php вставки.
Вот я и спросил, как мне отрендерить контент из базы, а не из файла.
Я судя по всему как то не так выражаю свои мысли, что никто понять не может. За это извините.
Спрошу по другому.
Я беру весь код файла представления( и HTML и PHP ) и кладу в поле таблицы.
Как мне отрендерить не файл представления, а поле таблицы с теме же данными.
Если я в самописной админке буду создавать страницу, то не буду же писать код страницы в файл представления, и добавлять Экшн на контроллер. - Я буду писать в базу. И рендерить тоже хотелось бы из базы.
render() - Позволяет рендерить только файл.
а renderContent() - совершенно не понимает php вставки.
Вот я и спросил, как мне отрендерить контент из базы, а не из файла.
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: Render из базы данных.
Ну а как ? Где мне хранить контент страницы ? в файле ? Я тогда логику процесса совсем не понимаю.
Последний раз редактировалось skobanev 2020.03.08, 00:25, всего редактировалось 1 раз.
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: Render из базы данных.
Сразу вопрос.
Вот такие php вставки будут рендерится ?
<?= \app\widgets\navigation:widget([ $catId => 2]) ?> Или они будут отсекатся либо текстом выводится ?
Вот такие php вставки будут рендерится ?
<?= \app\widgets\navigation:widget([ $catId => 2]) ?> Или они будут отсекатся либо текстом выводится ?
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: Render из базы данных.
В контенте только html должен быть.Если на странице есть виджеты, то они должны быть в файле представления.
Re: Render из базы данных.
Так вот я о чем и спрашиваю. Чтоб я рендерил код представления ( И PHP и HTML ) из базы, а не из файла. Включая виджеты и PHP код. Скорее всего этот вопрос уже поднимался. Только я что то не могу на него найти ответ.
В джумле был плагин, который позволял вставлять PHP код в контент страницы. можно было молули вызывать типа { moduleid 40 }... Вот и я так же хочу. Если такое вообще возможно.
Можно конечно при вызове страницы писать все в файл и рендерить его, но это нагрузка на сервер. Хотя если генерировать файлы правильно, то генерация нужна лишь раз, а логика потом будет проверять на нахождение файла. Типа если файл есть, то читать его. Но придется следить за версионностью при редактировании страницы в админке. Мол если была запись, то удалять файл. А Дальше при открытии, он перегенерится заного. Бред, но чтобы не городить огороды, то можно
В джумле был плагин, который позволял вставлять PHP код в контент страницы. можно было молули вызывать типа { moduleid 40 }... Вот и я так же хочу. Если такое вообще возможно.
Можно конечно при вызове страницы писать все в файл и рендерить его, но это нагрузка на сервер. Хотя если генерировать файлы правильно, то генерация нужна лишь раз, а логика потом будет проверять на нахождение файла. Типа если файл есть, то читать его. Но придется следить за версионностью при редактировании страницы в админке. Мол если была запись, то удалять файл. А Дальше при открытии, он перегенерится заного. Бред, но чтобы не городить огороды, то можно
Последний раз редактировалось skobanev 2020.03.08, 00:42, всего редактировалось 1 раз.
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: Render из базы данных.
Я не понимаю смысл этой операции, зачем хранить php код в базе?skobanev писал(а): ↑2020.03.08, 00:32 Так вот я о чем и спрашиваю. Чтоб я рендерил код представления ( И PHP и HTML ) из базы, а не из файла. Включая виджеты и PHP код. Скорее всего этот вопрос уже поднимался. Только я что то не могу на него найти ответ.
В джумле был плагин, который позволял вставлять PHP код в контент страницы. можно было молули вызывать типа { moduleid 40 }... Вот и я так же хочу. Если такое вообще возможно.
Ну можно, конечно, но его надо будет писать во временный файл и рендерить все равно из файла.
Re: Render из базы данных.
Я как раз отредактировал предыдущий пост.
Гибкость хочу. Чтоб не лезть в код. А чтоб из админки можно было контентом руководить.
На сегодняшний день мне с провайдером Извините, с Хостингом. ( уже голова не работает ) легче по HTTP работать. FTP ужасный, а SSH 60 сек сессия по моему. Сосредоточится не успеваю.
Гибкость хочу. Чтоб не лезть в код. А чтоб из админки можно было контентом руководить.
На сегодняшний день мне с провайдером Извините, с Хостингом. ( уже голова не работает ) легче по HTTP работать. FTP ужасный, а SSH 60 сек сессия по моему. Сосредоточится не успеваю.
Последний раз редактировалось skobanev 2020.03.08, 00:49, всего редактировалось 2 раза.
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: Render из базы данных.
Для этих целей в yii2 есть кеширование страниц представлений, ничего выдумывать не нужно.
https://www.yiiframework.com/doc/guide/ ... ching-page
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: Render из базы данных.
А логику можно ?
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: Render из базы данных.
Какую? Если хотите редактировать шаблоны представлений из админки, то это можно и с файлами делать.
Но это весьма порочная практика, попадание злоумышленника в админку приведет к получению контроля над сервером.
Как минимум нужно какой-то дополнительный шаблонизатор юзать вроде twig.
Re: Render из базы данных.
Вот.
Спасибо тебе еще раз добрый человек, Второй раз мне правильное направление даешь.
Буду курить шаблонизаторы.
Еще раз спасибо.
Тут кстати единственное место где ответы получить можно.
Спасибо тебе еще раз добрый человек, Второй раз мне правильное направление даешь.
Буду курить шаблонизаторы.
Еще раз спасибо.
Тут кстати единственное место где ответы получить можно.