我喜欢从后端列表视图中创建一个新项目。 对于新项目,我想传递一个取决于当前列表(实际年份)的默认值。
如何使用Joomla 2.5进行此操作?
我可以通过覆盖add()方法将值传递给当前控制器上新项目的控制器(通过JRequest :: getInt('AValue'))。
public function add()
{
$AValue = JRequest::getInt('AValue');
if($AValue == null)
{
$AValue = 2012;
}
parent::add();
}
我试图获取模型并为其赋值,但getModel()方法返回的对象与最终视图中使用的对象不同。
任何想法如何将价值提供给新物品的表格?
由于
答案 0 :(得分:0)
情况: 在足球赛场上列出一系列赛事。如果我从列表中选择Saison,我将获得另一个包含所有已分配事件的列表。 Saison中的事件列表由以下人员调用:
com_mycomponent /视图= eventlists&安培; saisonid = 2011
这将显示一个列表,其中包含分配给2011年saison的所有活动
现在我想为2011年的saison创建一个新活动。
添加按钮将调用:eventlist.add
MyComponentControllerEventList extends JControllerForm
在添加操作期间,我想以某种方式将saison(2011)传递给表单。
模型包含:
public function getTable($type = 'EventList', $prefix = 'MyComponentTable', $config = array())
{
return JTable::getInstance($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_mycomponent.eventlist', 'eventlist', array('control' => 'jform', 'load_data' => $loadData));
if (empty($form))
{
return false;
}
return $form;
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$data = JFactory::getApplication()->getUserState('com_mycomponent.edit.eventlist.data', array());
if (empty($data)){
// generate an empty item
$data = $this->getItem();
}
return $data;
}
所以它很直接。
视图也是默认的。
public function display($tpl = null)
{
// get the Data
$form = $this->get('Form');
$item = $this->get('Item');
// Check for errors.
if (count($errors = $this->get('Errors')))
{
JError::raiseError(500, implode('<br />', $errors));
return false;
}
// Assign the Data
$this->form = $form;
$this->item = $item;
// Display the template
parent::display($tpl);
}
有什么想法吗? 感谢
答案 1 :(得分:0)
你可以试试这个 -
http://docs.joomla.org/API15:JRequest/setVar
public function add()
{
$AValue = JRequest::getInt('AValue');
if($AValue == null)
{
JRequest::setInt('AValue',date('Y'));
}
parent::add();
}