我有一个控制器,让我们说thingy/stuff
目录
<?php public function index() { /*thingy stuff */ }
public function anotherfunction() {/*other thingy stuff*/} ?>
我看到的网址是index.php?route=thingy/stuff&var=dd
我想要的是在该控制器内调用$ .post到该函数
因此它使用另一个模板文件thingy.tpl
并返回html以使用
网址应该是什么?
我搜索了几个小时,听起来好像没有开放式购物车的开发文档
答案 0 :(得分:6)
假设你在thingy文件夹下有一个名为“stuff”的控制器,在该类中有一个名为“my function”的函数,如下所示:
class ControllerThingyStuff extends Controller {
public function index() {
// Some code
}
public function myfunction() {
// Your code
}
}
如果你想使用URL直接与这个函数通信,你可以将函数名称添加到路由参数“route = thingy / stuff / myfunction&amp; ...”的末尾,并在函数内加载thingy.tpl并在渲染后返回:
// some code
$this->template = 'template/product/thingy.tpl';
...
$this->response->setOutput($this->render());
如果使用open cart 1.5并且你想使用带有JSON的jQuery AJAX,那么你需要在渲染之前导入JSON库:
$this->template = 'thingy/stuff/thingy.tpl';
$json['output'] = $this->render();
$this->load->library('json');
$this->response->setOutput(Json::encode($json));
看看结帐页面以获得一些想法,默认的open cart 1.5模板使用相同的技术来加载每个部分的模板。
答案 1 :(得分:3)
如果路由不是索引,则会添加到路由中,默认情况下,例如
<?php
class ControllerThingyStuff extends Controller {
public function index() {
// This is called with route=thingy/stuff or thingy/stuff/index
}
public function something() {
// This is called with route=thingy/stuff/something
}
}