0

我既喜欢又讨厌 Cakephp。我需要多租户站点中几乎每个控制器中的当前域名和 ID。

所以,在 AppContoller beforeFilter...如果我这样做...

$dname = $_SERVER['HTTP_HOST'];
$this->set('domain',$dname); //only to show test output in the view.

我可以毫无问题地访问视图中的 $domain。目前很好。我知道我可以访问 SERVER vars。然后,当我像这样对域名进行硬编码时,我的查找功能可以正常工作......

$this->loadModel('Domain');     
$domainName = $this->Domain->find('first',array('conditions' => array('Domain.name' =>'test.localhost.com')));

但是,当我尝试在这样的条件下使用 $dname 时,它​​会失败。

$this->loadModel('Domain');
$dname = $_SERVER['HTTP_HOST'];    
$domainName = $this->Domain->find('first',array('conditions' => array('Domain.name' => $dname)));

我感觉我很接近了,但是……怎么了?

4

2 回答 2

1

天啊。我很尴尬。它工作正常。我在数据库中没有我正在使用的域的条目,所以它找不到任何东西。对不起。有时整个森林/树木的事情......你知道的。

于 2013-07-16T04:40:33.497 回答
0

你可以 pr($dname); 在前置过滤器中,它将显示在每一页上。您也可能想尝试使用 strtolower() 以确保在将其放入条件时没有其他字母大写。

于 2013-07-16T04:03:30.957 回答