CakePHP 2.1.3 Shell,如何创建电子邮件链接

时间:2014-04-29 19:17:28

标签: php shell email cakephp cakephp-2.1

如何从CakePHP Shell创建电子邮件链接? 如果我按照正常方式行事,例如:

<?php echo 
$this->Html->link($task['Project']['subject'], array('full_base' => true,
  'admin' => false,
  'controller' => 'projects',
  'action' => 'view',
  $task['Project']['id']                                  
  )
);
?>

它将导致localhost/projects/view/12而不是flat.com/projects/view/12

我确实在bootstap smtg中尝试覆盖,如:

define('FULL_BASE_URL', 'http://flat.com');

它会起作用,但会导致会话问题,我不知道为什么。例如:当我在flat.com上注销时,如果我访问www.flat.com,它仍然会显示登录信息。还有其他方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

避免问题

  

当我在flat.com上退出时,如果我去www.flat.com

它将会导致会话问题,[...]

让应用程序响应多个主机名可能会有问题,最好避免使用。 问题最简单的解决方案是确保应用程序只使用一个域

例如using apache将以下内容添加到webroot .htaccess文件中:

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

using nginx添加服务器块,如下所示:

server {
  listen 80;

  # listen on the www host
  server_name www.example.com;

  # and redirect to the non-www host
  return 301 $scheme://example.com$request_uri;
}

或者只是在cli上定义常量

或者,有条件地在引导程序文件中定义常量:

if (php_sapi_name() === 'cli') {
    define('FULL_BASE_URL', 'http://example.com');
}

答案 1 :(得分:0)

只需将其放在 Config / core.php

Configure::write('App.fullBaseURL', 'http://domain.ext/');