0

我正在使用 Cloudinary 来管理我的 Sf2 应用程序中的直接图像上传。

有一个名为“cl_image_upload_tag”的 Cloudinary 辅助函数可以生成上传表单。

我需要在我的控制器中运行该函数并将结果显示为我的模板中的原始代码。但我无法访问控制器中的功能

$cloud_form = \Cloudinary\Uploader::cl_image_upload_tag('image_id', array("callback" => $this->get("router")->generate("cloudinary_callback")));

(我将在 Twig 中将 $cloud_form 输出为 {{ cloud_form|raw }} )

我认为这是一个命名空间问题,但我无法让它工作,它得到“错误:调用未定义的方法”。谢谢!

更新:这是自动加载文件:

<?php

use Doctrine\Common\Annotations\AnnotationRegistry;
use Composer\Autoload\ClassLoader;

/**
 * @var $loader ClassLoader
 */
$loader = require __DIR__.'/../vendor/autoload.php';

AnnotationRegistry::registerLoader(array($loader, 'loadClass'));

return $loader;
4

2 回答 2

1

Try to modify your app/autoloader.php file as follows

$loader->registerNamespaces(array(
    'Cloudinary' => __DIR__.'/../vendor/path/to/Cloudinary/source/file',
));

From now on you should be able to refer to your class as Cloudinary

use Cloudinary; // example
use Cloudinary\Uploader; //other example
于 2013-11-29T14:05:45.627 回答
1

cl_image_upload_tag不是 Uploader 类的方法,它只是一个在 Uploader.php 中定义的函数,它与保存 Uploader 类的文件相同。

假设您在控制器顶部包含 Uploader.php,您可以直接调用该函数:

$cloud_form = \cl_image_upload_tag('image_id', array("callback" => $this->get("router")->generate("cloudinary_callback")));

如果您使用 composer 来供应 Cloudinary 包,Composer 可能会负责将这些功能添加到您的应用程序中,而无需将文件包含在您的控制器中。

于 2013-11-29T11:49:43.267 回答