【问题标题】:How can I concatenate to the end of a route using Laravel?如何使用 Laravel 连接到路由的末尾?
【发布时间】:2015-03-31 07:39:42
【问题描述】:

我正在使用 Laravel 创建一个项目。

有没有办法在<a> 标签中使用{{ route('routename') }} 连接到网址的末尾?

我使用 foreach 循环创建了一个链接到全尺寸图像集合的缩略图列表。

@foreach ($images as $image)
    <a href="{{ route('images') }}"> // link to full size image collection
        <img src="{{ $image->url }}">// thumbnail image
    </a>
@endforeach

{{ route('image') }} 是指向分页页面的链接,每页仅包含一个图像。

所以第一张图片的网址是my.site/images?page=1,第二张是my.site/images?page=2,以此类推。

我想根据用户点击的缩略图将用户路由到正确的page=#,这样他们就不必在每次点击缩略图中的链接时从全尺寸图像的开头开始。

我想我可以使用 foreach 循环将变量加 1 并在每个 href 的末尾连接它以获得正确的页码,但我不确定如何使用 Laravel 做到这一点?

我希望生成的 html 看起来像这样

<a href="my.site/images?page=1"><img src="thumbnail1.jpg"></a>
<a href="my.site/images?page=2"><img src="thumbnail2.jpg"></a>
<a href="my.site/images?page=3"><img src="thumbnail3.jpg"></a>
<a href="my.site/images?page=4"><img src="thumbnail4.jpg"></a>
<a href="my.site/images?page=5"><img src="thumbnail5.jpg"></a>
...

有人知道方法吗?

【问题讨论】:

    标签: php laravel routes blade


    【解决方案1】:

    您自己发现的方法非常有效,但还有一种更优雅的方法。您作为第二个参数传递的所有不是实际路由参数的参数(如{page})都将作为查询字符串附加。

    {{ route('images', ['page' => $n]) }}
    

    【讨论】:

      【解决方案2】:

      我能够通过使用此代码来完成这项工作

      <?php $n = 1; ?>
      @foreach ($images as $image)
          <a href="{{ route('images') . '?page=' . $n }}"> // link to full size image collection
              <img src="{{ $image->url }}">// thumbnail image
          </a>
          <?php $n++; ?>
      @endforeach
      

      【讨论】:

      • 这取决于您的数组/集合,但您可以先执行@foreach ($images as $n =&gt; $image),然后执行'?page=' . $n+1,这样您就可以摆脱$n = 1$n++ 行。 :)
      猜你喜欢
      • 1970-01-01
      • 2020-07-14
      • 1970-01-01
      • 2016-03-27
      • 2015-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多