自定义controller的function怎么互相调用

#1 dongxu0139

先描述下需求,我在model下建了一个agency_model.php,对应表也建立了,controller下也建立了对应的agency_controller.php用来处理,agency_controller.php里建了一个自定义的function->add,代码在下面,对应此表的添加维护页面也都调通了,通过前台html的form提交也可以正常的add记录进ac_agency表,现在的问题是我在另一个页面调用另一个controller下自添加的class下的某个function时(比方说添加一个导游信息时),我想直接调这一下这个agency class的add function,应该怎么调用,参数ac_name和ac_phone在这种情况下设定为'guide'和'xxx'传递。

jake老大,可能我的问题比较小白,但我确实又翻了一遍手册的,只找到了调用第三方的include class调用,那个我会调,但这个怎么也没调通,求点拨。。。

function add()
{
$ac_name=$this->spArgs("ac_name");
$ac_phone=$this->spArgs("ac_phone");
$execsql = array('ac_name' => $ac_name,'ac_phone' => $ac_phone);
$result = spClass('ac_agency')->create($execsql);
if ($result)
{echo json_encode(array('success'=>true));}
else
{echo json_encode(array('errormsg'=>'操作失败,请重试!'));}
}

2015-01-15 23:12:08

#2 jake

其实也还是spClass来做http://www.speedphp.com/thread-3825-1-1.html

spClass的第三个参数是类的路径,把它设置成你另一个controller的文件路径,这样就可以调用到那个controller类了

2015-01-16 08:39:11

#3 dongxu0139

jake 发表于 2015-1-16 08:39
其实也还是spClass来做http://www.speedphp.com/thread-3825-1-1.html

spClass的第三个参数是类的路径,把 ...
你的那个例子没有给function传参数,如果要带参数怎么传递呢?
我这样写报错了
$rtn_log = array('ac_name' => 'test','ac_phone' => 'XXX');
spClass('agency')->add($rtn_log);

2015-01-17 10:03:34

#4 jake

dongxu0139 发表于 2015-1-17 10:03
你的那个例子没有给function传参数,如果要带参数怎么传递呢?
我这样写报错了
$rtn_log = array('ac_nam ...
和你“已经会”的第三方类库调用方法一样,包括参数也一样。
报错请写出报错 信息可以吗?

靠猜是不知道出什么错误的

2015-01-17 21:29:26

#5 dongxu0139

jake 发表于 2015-1-17 21:29
和你“已经会”的第三方类库调用方法一样,包括参数也一样。
报错请写出报错 信息可以吗?
报错为:agency类定义不存在,请检查。
第一个问题是为什么找不到class,由于文件就是在系统的controller目录下,所以我没有再指定$dir,应该怎么写?
第二个问题是我要在调用class里的function时传入两个参数,我这么写对不对?
$rtn_log = array('ac_name' => 'test','ac_phone' => 'XXX');
spClass('agency')->add($rtn_log);


2015-01-18 23:55:08

#6 jake

dongxu0139 发表于 2015-1-18 23:55
报错为:agency类定义不存在,请检查。
第一个问题是为什么找不到class,由于文件就是在系统的controller ...
指定目录吧,楼上不是回答你说要指定目录吗?
controller类理论上开发时候不需要互相调用的,所以spClass默认没有controller目录的遍历,需要手动指定目录。

2015-01-19 08:44:07