SonataMediaBundle : 允许用户上传链接

Posted

技术标签:

【中文标题】SonataMediaBundle : 允许用户上传链接【英文标题】:SonataMediaBundle : allow user to upload link 【发布时间】:2016-08-20 08:13:19 【问题描述】:

我对 symfony 还很陌生,我目前正在用它做一个学校项目。

我必须创建一个功能,让我的用户可以上传 youtube 链接视频(如博客文章,但带有视频)。所以我决定使用 sonataMediaBundle 来处理我的链接的上传。

我已经安装了 SonataAdminBundle 和 SonataUserBundle。它允许我已经设置了我的 CMS,但我发现只有管理员可以上传链接,我无法找到如何允许我的用户上传链接视频而不让他们访问我在 SonataMediaBundle 中的所有 CMS。

好的,我正在推进我的项目,我把它做得很简单(没有奏鸣曲)。我在教义上有一个问题,我无法检索我的数据库对象。

我遵循了 symfony 文档,所以我有了我的“showAction”。

public function showAction($id)

    $video = $this->getDoctrine()
        ->getRepository('MediaBundle:Media')
        ->find($id);

    if (!$video) 
        throw $this->createNotFoundException(
            'No video found for id '.$id
        );
    

    return $this->render("MediaBundle:LinkUpload:linkupload.html.twig", array(
        'video' => $video,
    ));

然后在我的模板中我正在做:

% for item in video %
     item.name 
% endfor %

我也尝试不使用 id 参数并使用 findAll() 而不是 find() 但我总是收到错误消息,告诉我我的变量“video”不存在。

对此有任何想法吗?

我也想知道:如何正确上传 youtube 链接视频?我正在考虑放置一个标签并要求用户每次都上传嵌入的 youtube 链接,但这样做不是很复杂吗? (对于我的意思是用户)。

提前感谢您即将提供的答案!

【问题讨论】:

你不应该需要一个包来做到这一点。这是一个简单的案例,即创建一个实体来保存数据,然后将该数据呈现到模板中。试一试,如果您遇到困难,请让我们看看您的尝试。 【参考方案1】:

问题解决了!我在 showAction 方法之前返回了另一个方法,这意味着我的 showAction 方法什么也没返回!

【讨论】:

以上是关于SonataMediaBundle : 允许用户上传链接的主要内容,如果未能解决你的问题,请参考以下文章

尝试扩展 SonataMediaBundle 时出错“无法在空变量上调用方法(“id”)”

SonataMediaBundle 与自定义实体一起使用

SonataMediaBundle - S3 AWS:'配置的存储桶“我的存储桶”不存在

SonataMediaBundle - 如何上传图片?

SonataMediaBundle:找不到文件/图像

安装 SonataMediaBundle 后映射异常