2014-11-21 104 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