我正在实现一个从前端joomla中删除数据库表中的行的函数。
基本上我用url创建一个链接index.php?option = com_event& view = delete& id = 17,一旦点击链接,就会调用控制器中的函数delete(),在其中调用delete_event ()在模型中。在模型中,delete_event()将从url id中获取事件id,并删除具有此id的事件。
首先,我不知道逻辑是否正确。
其次,如何从delete_event()模型中的url中获取事件id?
我正在尝试:
$app = JFactory::getApplication();
$menu = $app->getMenu();
我不认为这是正确的。
请帮帮我。 谢谢。
答案 0 :(得分:1)
地址中的那些变量作为GET变量传递到页面中。根据{{3}},您可以使用JRequest::getVar('id')
。带有第二个参数的备用表单允许您轻松处理未设置ID的情况。
答案 1 :(得分:1)
你说的流程与Joomla标准一致。
在控制器功能中,您可以使用以下方法获取输入ID。
$removal_id = JRequest::getInt('id',0);
您可以从此控制器将此参数作为参数传递给模型,或直接在模型上检索。
$model = $this->getModel('Article');//your model name
$model->delete_event($removal_id);
确保您已在表单中包含Joomla HTML令牌,并检查控制器功能内部是否阻止直接访问URL。
检查Joomla令牌。
JRequest::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
删除后,您需要重定向回视图,只需使用。
$this->setRedirect('url','message');
对于更多标准,您可以使用Joomla本机函数来执行任务,因为您必须正确设置表结构,然后检查this
希望它有意义..
答案 2 :(得分:0)
我希望这有助于从网址
获取IDif(isset($_GET['id']))
{
$id = $_GET['id'];
}
然后将$ id传递给模型以进行进一步的操作,如此
delete_event($id);
更专门针对Joomla试试这个
$myabsoluteurl=JURI::base(); //for Absolute URL
$mycurrenturl=JURI::current(); //for Current URL
并且一旦获得当前URL,您可以使用php explode函数将其除以部分