【发布时间】: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 链接,但这样做不是很复杂吗? (对于我的意思是用户)。
提前感谢您即将提供的答案!
【问题讨论】:
-
你不应该需要一个包来做到这一点。这是一个简单的案例,即创建一个实体来保存数据,然后将该数据呈现到模板中。试一试,如果您遇到困难,请让我们看看您的尝试。
标签: php symfony sonata sonata-media-bundle