2012-06-19 17 views
5

से पूरा यूआरएल बनाना मैं कंसोल शैल के माध्यम से केकपीएचपी 2.1.2 से एक ईमेल भेजने की कोशिश कर रहा हूं (अंततः एक क्रॉन नौकरी द्वारा)। जो दृश्य मैं भेज रहा हूं वह कैलेंडर है जो एप्लिकेशन वेब पेज पर लिंक के साथ है। मुझे जो समस्या मिल रही है वह यह है कि यूआरएल में सही पथ शामिल नहीं है और जो मैंने पढ़ा है, वह इसलिए है क्योंकि कंसोल का उपयोग करने के बाद से कोई अनुरोध ऑब्जेक्ट नहीं है। उदाहरण के लिए, अगर मैं दृश्य बनाने के अपने ब्राउज़र में मैं इस तरह के लिंक प्राप्त:केकेपीएचपी 2.1.2 कंसोल शैल

http://localhost/ReportMonitor/scheduledReports/index/show_date:2012-06-10/result:GOOD 

लेकिन ईमेल में एक ही कोड मैं इस मिल का उपयोग करते हुए:

http://localhost/scheduledReports/index/show_date:2012-06-10/result:GOOD 

जो करीब है, लेकिन कोई सिगार ।

मैं वैश्विक खोजने की कोशिश कर रहा हूं कि मैं ऐप उपनिर्देशिका को केवल हार्ड कोड पर सेट कर सकता हूं लेकिन अभी तक कुछ भी नहीं मिला है। लिंक इस तरह एक कोड से बनते हैं:

$newUrl = array(); 
$newUrl['controller'] = 'scheduledReports'; 
$newUrl['action'] = 'index'; 
$newUrl['url'] = array(); 

foreach ($data as $key => $value) { 
    $newUrl['show_date'] = "$year-$month-$key"; 
    $newUrl['result'] = 'GOOD'; 
    $data[$key]['num_complete'] = $this->Html->link(__('Complete: ') . $value['num_complete'], Router::reverse($newUrl, true), array('class' => 'green')); 

मुझे लगता है कि होगा यह एक आम समारोह (सांत्वना जेनरेट किया गया ईमेल में मान्य url भेज रहे हैं) है, लेकिन मैं सिर्फ यह पता नहीं कर सकते हैं।

धन्यवाद

उत्तर

3

लिंक

echo $this->Html->link(array(
    'controller' => 'posts', 'action' => 'index', 'full_base' => true 
)); 

में full_base विकल्प का उपयोग करें और अपने आधार यूआरएल को bootstrap.php में FULL_BASE_URL लगातार सेट:

define('FULL_BASE_URL', 'http://www.domain.com/subdir'); 

आप के लिए मार्गों का उपयोग कर रहे हैं, तो आपके ऐप, आपको अपने खोल में रूटिंग शामिल करने की आवश्यकता है:

App::uses('Router', 'Routing'); 
config('routes'); 
+1

यह सहायक हो सकता है http://stackoverflow.com/a/13660262/1868660 –