2011-11-02 87 views
0

我有一个控制器,在有假设thingy/stuff目录如何调用一个函数控制器里面Opencart的

<?php public function index() { /*thingy stuff */ } 

public function anotherfunction() {/*other thingy stuff*/} ?> 

我看到像index.php?route=thingy/stuff&var=dd

我想要的东西里边反网址是调用$ .POST到控制器

所以它使用另一个模板文件thingy.tpl这里面的功能,并返回HTML中使用

什么URL应该像?

我搜索了几个小时答听起来有对开放式购物车在那里没有开发文档

+0

你到底想要做什么? – Tohid

回答

5

假设你有一个叫“东西”的啄文件夹和一个名为“我的功能”类中的作用下,控制器,看起来像这样:

class ControllerThingyStuff extends Controller { 
    public function index() { 
    // Some code 
} 
public function myfunction() { 
// Your code 
} 
} 

如果你想直接使用这个函数使用URL,你可以添加函数名称到路由参数“route = thingy/stuff/myfunction & ...”的末尾,然后在函数中加载thingy.tpl并在返回之后返回它渲染:

// some code 
$this->template = 'template/product/thingy.tpl'; 
... 
$this->response->setOutput($this->render()); 

,如果使用的是开放的购物车1.5和你想使用jQuery AJAX与JSON,那么你就需要渲染之前导入JSON库:

$this->template = 'thingy/stuff/thingy.tpl'; 
$json['output'] = $this->render(); 
$this->load->library('json'); 
$this->response->setOutput(Json::encode($json)); 

看看的结账页面来获得一些想法,默认打开的购物车1.5模板使用相同的技术来加载每个部分的模板。

+0

是的,谢谢,但我如何访问POST或GET数据? $ _POST和$ _GET只是不工作,我认为由于MVC规则 我如何访问从Myfunction()内发送的数据? – Qchmqs

+0

它与MVC无关,在MVC中没有这样的规则,就是OpenCart实现它的方式!你可以通过调用Request对象来访问POST和GET值:$ this-> request-> get ['blabla']和$ this-> request-> post ['blabla'] :)希望可以帮助 – Tohid

+0

我开始使用OpenCart从v1.5开始,我不确定这是否是他们在1.4版本中的做法!但应该有类似的东西:)让我知道如果没有工作:) – Tohid

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 
    } 
} 
+0

所以如果我想发送数据,我应该看看 'route = thingy/stuff/something&var = dd' ?? 但数据将在发布后不是函数的参数? – Qchmqs

+0

不,你通过数据,像这里显示 http://api.jquery.com/jQuery.post/ –

+0

非常感谢你,我终于得到它的工作 – Qchmqs

相关问题