如何在 CakePHP 中获取控制器内部的基础 url

How to get base url inside controller in CakePHP

我正在使用 CakePHP 2.6.7。我想得到以下 url:

www.mydomain.com/OrderFromReseller/82BC1562-22F9-4326-8B4B-370129710E8C

我试试:

$resellerURL = $this->webroot . 'OrderFromReseller/' . $this->request->data['Reseller']['api_key']; 

但是当我回显 $resellerURL 的值时,它会回显 http://orderfromreseller/82BC1562-22F9-4326-8B4B-370129710E8C

有没有 $this->webroot 的替代方法来在 cakephp 中正确获取基础 url?

您想使用 Router::url() 获得完整的 URL。例如获取主页的完整网址:-

Router::url('/', true);

您可以将任何路由器数组作为第一个参数传递以获得完整的 URL,只要您将 true 作为第二个参数传递。例如:-

$url = Router::url(
    ['controller' => 'pages', 'action' => 'display', 'test'],
    true
);

它在 cakephp 3.5 中对我有用,请遵循以下代码

1) 在下面的控制器顶部添加此代码namespace App\Controller;

use Cake\Routing\Router;

2) $baseUrl = Router::url('/', true);

这是在 cakephp 3+

中获取基数 url 的最好和最简单的方法