我正在使用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;
答案 0 :(得分: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可能会将这些功能添加到您的应用程序中,而无需在控制器中包含该文件。
答案 1 :(得分:1)
尝试按如下方式修改app/autoloader.php
文件
$loader->registerNamespaces(array(
'Cloudinary' => __DIR__.'/../vendor/path/to/Cloudinary/source/file',
));
从现在开始,您应该可以将您的班级称为Cloudinary
use Cloudinary; // example
use Cloudinary\Uploader; //other example