![](/img/trans.png)
[英]How to pass array of data from Joomla view form and get the array of data in Joomla Controller
[英]How to pass data from Joomla sub controller to view?
我已经看到很多例子将数据从Joomla控制器传递给视图(例如这里 )。 但我需要将Joomla子控制器传递给特定的视图文件(view.html.php)。 我搜索了一整天并没有找到解决方案。 有谁知道如何做到这一点?
Joomla MVC非常松散,您可以通过多种方式实现此行为。 我认为这是在Joomla中实现MVC的最标准序列:
但你可以处理3中的参数并将它们传递给模型; 这真的是风格/品味的问题。 由于Joomla允许您使用$ this-> get('Data')从视图中调用模型,因此没有传递params的空间; 但是你可以选择调用$ model-> getData2($ param1,$ param2)。
基本电话是:
JApplication::getUserStateFromRequest()
它在一次调用中读取输入并返回先前保存的会话数据;
setUserState在会话中保留此信息,并在模型中使用getUserState来检索数据。
但是,您可以简单地重定向传递URL中的参数; 然后使用view.html.php解析输入并在调用方法($ model-> setState)之前设置模型的内部状态,或者完全避免重定向并从控制器加载模型和视图(这似乎更标准轻松接近MVC,但在Joomla中很少见到。
直接从控制器调用视图
$vName = 'yourview';
$vFormat = 'html'; // raw
if ($view = $this->getView($vName, $vFormat)) {
$model = $this->getModel($vName);
$model->setState('filter.type', $type);
$view->setModel($model, true);
// Push document object into the view.
$view->assignRef('document', $document);
$view->display();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.