Cake PHP3 rest API获取图像的公共URL

时间:2016-08-24 07:37:23

标签: php api cakephp routing cakephp-3.0

我在蛋糕PHP3中创建了rest API,我需要在端点上添加一些API版本。 例如:圆顶 - www.test.com 版本控制 - /test/api/v1/ 所以用户端点就像是www.test.com/test/api/v1/users

我已经更改了routes.php文件,如下所示。

Router::scope('/test/api/v1/', function (RouteBuilder $routes) {

以上更改在端点中正常工作,但当我尝试获取公共图片网址时,webroot/img目录中的图片如下所示Controller class Img is missing

http://test.com/test/api/v1/img/cake.png

  1. 我是否使用正确的蛋糕PHP3方式来更改端点URL?
  2. 如果是这样,我如何获取上述webroot/img图片的公开网址?

1 个答案:

答案 0 :(得分:1)

在CakePHP中,最好将不同版本的REST API创建为单独的插件,例如插件ApiV10。

内部插件routes.php添加如下:

use Cake\Routing\RouteBuilder;
use Cake\Routing\Router;
Router::extensions(['json']);
Router::plugin(
    'ApiV10',
    ['path' => '/api/v1'],
    function (RouteBuilder $routes) {
        $routes->connect(
            '/autosuggestions/locations',
            ['controller' => 'Autosuggestions', 'action' => 'locations','_ext' => 'json']
            );
        $routes->connect('/users', ['controller' => 'Users', 'action' => 'index']);
        $routes->fallbacks('DashedRoute');
    }
);

在您的控制器方法中设置数据数组,其中包含webroot / img / yourimages.jpg的完整路径。完整路径也可以在实体

中修改

http://book.cakephp.org/3.0/en/orm/entities.html#accessors-mutators