在javascript模板中输出Laravel变量

Output a Laravel variable within a javascript template

本文关键字:输出 Laravel 变量 javascript      更新时间:2023-09-26

我正在开发Laravel-4应用程序,并使用javascript templates来呈现特定页面上的项目。下面是我的幻灯片项目模板

<script type="t/template" id="bookItem">
        <div class="resource-wrap" data-resource="@{{=type}}">
            <div class="resource @{{=type}}">
                @{{id}}
                <div class="image">
                @foreach($slideshow->find($slideshow->id)->slides()->take(1)->get() as $slide)
                    <img width="100%" height="100%" src="/img/slideshows/{{$slide->link}}"/>
                @endforeach
                </div>
                @{{/id}}
                <ul class="info">
                    <li class="title"><a href="#">@{{=id}}@{{=title}}@{{=name}}</a></li>
                    <li><a href="#">@{{=desc}}</a></li>
                </ul>
                <a class="ov open-@{{=type}}" href="#"></a>
            </div>
        </div>
</script>

它在页面上表现得很好,除了一件事之外,其他一切都正常工作。此行:

@foreach($slideshow->find($slideshow->id)->slides()->take(1)->get() as $slide)

我正在尝试传入当前项目的id,但似乎无法这样做。我可以在这里:

<li class="title"><a href="#">@{{=id}}@{{=title}}@{{=name}}</a></li>

但是当我在循环中使用@{{=id}}时,我会得到一个错误。我想知道如何在循环中打印出这个变量?

我倾向于避免在视图中进行查询和在控制器中进行查询,将集合传递给视图-使其在视图中更干净。尽可能将视图分开

因此,假设您已经传递了一个变量$slideshow,这是您的集合,那么您可以执行以下操作:

            <div class="image">
            @foreach($slideshow AS $slide)
                <img width="100%" height="100%" src="/img/slideshows/{{$slide->link}}"/>
            @endforeach
            </div>

我不清楚你的问题中$id的价值是多少。这是幻灯片的id吗?如果是,那么只要它包含在循环中,你就可以通过$slide->id获得

如果假设是错误的,你能确认什么id与相关吗