Intereting Posts
Какой лучший поставщик услуг хостинга Apple Push Notification Service получить первый пиксель из изображения, используя php Получите PHP, чтобы остановить замену. символов в массивах $ _GET или $ _POST? SQL-команда на основе PHP strstr или LIKE Как отправить запрос curl с сертификатом pem через PHP? регулярное выражение, которое будет извлекать предложения из текстового файла Несколько настроек IPN для Paypal Инструмент ретроспективного автоматического комментария / phpDocumentor Netbeans-esque (для Eclipse или автономного) Объекты массива передаются по ссылке? PHRETS не ищет данные Композитный шаблон в PHP, как создавать классы для работы вокруг необходимости расширения двух классов Удалить / Скрыть Woocommerce Добавлен в корзину Сообщение, но Keep / Display Coupon Applied Message Панель инструментов администратора в wordpress Как получить все изображения hashtag в Instagram без API? `password_verify` вызов возвращает false для правильного пароля

Как работает Joomla Model View Controller (MVC)?

Я новичок в Joomla, я хочу знать, как контроллер Joomla передает данные модели, модели для контроллера и контроллера для просмотра. Хотя это может быть глупый вопрос, я действительно пытался найти ответ. Надеюсь, я смогу получить помощь из семейства stackoverflow.

Контроллер выбирает переменную вида в URL-адресе и использует их, чтобы определить, какое представление необходимо использовать. Затем он устанавливает вид, который будет использоваться. Затем представление вызывает модель для получения требуемых данных, а затем передает ее на отображаемый tmpl.

Ниже приведена простая настройка того, как все это работает:

Компоненты / com_test / controller.php

class TestController extends JController { // default view function display() { // gets the variable some_var if it was posted or passed view GET. $var = JRequest::getVar( 'some_var' ); // sets the view to someview.html.php $view = & $this->getView( 'someview', 'html' ); // sets the template to someview.php $viewLayout = JRequest::getVar( 'tmpl', 'someviewtmpl' ); // assigns the right model (someview.php) to the view if ($model = & $this->getModel( 'someview' )) $view->setModel( $model, true ); // tell the view which tmpl to use $view->setLayout( $viewLayout ); // go off to the view and call the displaySomeView() method, also pass in $var variable $view->displaySomeView( $var ); } } 

компоненты / com_test / просмотров / someview / view.html.php

 class EatViewSomeView extends JView { function displaySomeView($var) { // fetch the model assigned to this view by the controller $model = $this->getModel(); // use the model to get the data we want to use on the frontend tmpl $data = $model->getSomeInfo($var); // assign model results to view tmpl $this->assignRef( 'data', $data ); // call the parent class constructor in order to display the tmpl parent::display(); } } 

компоненты / com_test / модель / someview.php

 class EatModelSomeView extends JModel { // fetch the info from the database function getSomeInfo($var) { // get the database object $db = $this->getDBO(); // run this query $db->setQuery(" SELECT * FROM #__some_table WHERE column=$var "); // return the results as an array of objects which represent each row in the results set from mysql select return $db->loadObjectList(); } } 

компоненты / com_test / просмотров / someview / TMPL / someviewtmpl.php

 // loop through the results passed to us in the tmpl foreach($this->data as $data) { // each step here is a row and we can access the data in this row for each column by // using $data->[col_name] where [col_name] is the name of the column you have in your db echo $data->column_name; } 

ознакомьтесь с этим сайтом для подробного руководства о том, как создавать компоненты и модули с помощью MVC Joomla. Надеюсь, поможет

https://docs.joomla.org/Developing_a_MVC_Component

Также обратитесь к официальному документу joomla doc для подробного руководства о том, как создавать компоненты и модули с помощью MVC Joomla. Надеюсь, что это поможет http://docs.joomla.org/Developing_a_Model-View-Controller_Component/1.5/Introduction