2014-11-21 111 views
0

我试图将两段代码整合在一起。现有的代码已经生成一个散列码和函数调用这个URLPHP如何将控制器url调用转换为函数

header(Location: http://".$_SERVER['HTTP_HOST']."/subfolder/controller.php?document&validate&patient_id=".$pid."&document_id=".$nid."&process=true"); 

有另一种方式,而不做一个头重定向,因为头重定向导致代码重定向时停止处理执行此功能。

在控制器文件中,只有一个线路回声Controller :: act($ _GET);

我试图将其转换为函数。我试过了。

include_once controller.php //class file 

    function hash_tag($pid, $nid){ 

      $filetag = "document&validate&patient_id=".$pid."&document_id=".$nid."&process=true"; 

     echo Controller::act($filetag); 


} 

hashtag($pid, $nid); 

任何帮助将不胜感激。 代码为Controller.class.php文件可以在这里 https://github.com/juggernautsei/Drag-N-Drop/blob/master/library/classes/Controller.class.php

+0

'控制器:: act'是自定义类?或者一个框架开源? – 2014-11-21 22:12:51

+0

OpenSource自定义类。它接缝是一个自定义类,因为我无法在任何地方找到它。 – user1794918 2014-11-25 17:56:29

+0

哇,今天只回答大声笑,显然你已经有了解决办法,祝你好运! – 2014-11-25 18:17:06

回答

0

您试图从GET请求传递字符串到控制器。 但是Contract :: act()对数组起作用($ _GET是一个超全局数组)。

构建函数内部的阵列和分配功能给它的参数,然后将其传递到所述控制器,像这样:

include_once 'controller.php'; 

function hash_tag($pid, $nid) 
{ 
    $array = array(); 

    $array['document'] = 1; 
    $array['validate'] = 1; 
    $array['patient_id'] = $pid: 
    $array['document_id'] = $nid; 
    $array['process'] = 1; 

    echo Controller::act($array); 
} 

hashtag($pid, $nid); 
1

看到你没有发布您的代码里面controller.php但考虑到你的第一种方法是通过访问URL参数的代码,我会假设你在该代码中执行变量GET变量(例如:$_GET['patient_id'])。

如果是这样,现在您通过include_once执行该代码,您必须更改在controller.php中设置变量的方式,因为没有更多的$_GET

+0

你们俩都很近。我添加了一行代码来吐出$ _GET数组,而Jens-AndréKoch是对的,我必须构建我所做的数组,但现在将数组传递给控制器​​是挑战。 echo Controller :: act($ array);不会呼叫控制器。 – user1794918 2014-11-21 23:00:20

+0

我不知道你在controller.php里面有什么,这就是我没有在我的答案中包含传递变量的新方法的原因。 – Verhaeren 2014-11-21 23:05:26

+0

将位于controller.php上的代码添加到您的问题中。这样就可以更容易地看到你如何实现该代码。如果您担心代码太多,只需在开始和结尾处张贴一些行。 – Verhaeren 2014-11-21 23:14:04