创建从CakePHP的完整URL 2.1.2控制台shell(Creating full url f

2019-06-25 15:13发布

我试图从CakePHP的2.1.2通过控制台shell(最终由cron作业)发送电子邮件。 我送的观点与回应用网页链接的日历。 我发现的问题是,该网址不包含正确的路径,并从我读这是因为没有请求对象,因为我使用的控制台。 例如,如果我在浏览器中创建视图我得到像这样的链接:

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'));

我认为这是一种常见的功能(在生成的控制台电子邮件发送有效网址),但我无法弄清楚。

谢谢

Answer 1:

使用full_base中的链接选项

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

并设置FULL_BASE_URL在不断bootstrap.php你的基地,网址:

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

如果你正在使用你的应用程序的路线,你需要在你的shell路由:

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


文章来源: Creating full url from CakePHP 2.1.2 Console Shell