我正在做一个项目,在这个项目中我将 youtube 视频链接存储在数据库中,然后我检索这些链接并使用 blade 模板引擎尝试将它们嵌入到页面中。我使用循环将视频放入页面中。出于某种原因,我没有在浏览器中获取任何视频。它覆盖了提到的空间但不渲染任何东西。我正在使用 laravel 3。这里有几个代码片段,如果它们有帮助的话。
这是 index.blade.php
@layout('layouts.master')
@section('content')
@foreach ($videos as $video)
<h4>{{ $video->title }}</h4>
<br>
<div class="media">
<div class="media-body">
<iframe width="560" height="315" src="{{ $video->link }}" frameborder="0" allowfullscreen>
</iframe>
</div>
</div>
<br>
@endforeach
@endsection
$videos 变量是从 Controller 传递过来的。
class Videos_Controller extends Base_Controller
{
public $restful = true;
public function get_index()
{
$videos = DB::table('videos')->get();
return View::make('videos.index')
->with('title', 'Videos')
->with('videos', $videos);
}
}
我得到的只是一个空白页。我不明白我做错了什么。我正在使用 twitter bootstrap 进行 css 原型(prototype)设计。任何帮助将不胜感激。
这是 master.blade.php 的“头部”的样子:
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ $title }} </title>
<meta name="viewport" content="width=device-width">
{{ HTML::style('css/bootstrap.min.css') }}
{{ HTML::style('css/bootstrap-responsive.min.css') }}
</head>
这是我检查元素时出现在 firefox 中的内容。
<div class="media">
<div class="media-body">
<iframe width="560" height="315" frameborder="0" allowfullscreen="" src="http://www.youtube.com/watch?v=1iBm60uJXvs">
#document
<html>
<head></head>
<body></body>
</html>
</iframe>
</div>
</div>
最佳答案
幸运的是,我确实找到了解决问题的办法。希望它也能对您有所帮助。使用嵌入语句中存在的 url。例如,如果您转到 youtube 并单击 this 的嵌入链接 视频你会得到这个
<iframe width="420" height="315" src="//www.youtube.com/embed/BstTBw6BLrE" frameborder="0" allowfullscreen></iframe>
现在使用 src 标签中的 url。这也适用于其他视频托管服务,例如 VEVO。
希望对你有帮助..
关于php - 如何在 laravel 代码中嵌入视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16957861/