加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 嵌套视图中的增量变量

发布时间:2020-12-13 22:47:11 所属栏目:PHP教程 来源:网络整理
导读:在laravel框架中,我有几个嵌套视图如下 mainview loop @include sub-view loop @include sub-sub-view 我想知道有多少子视图.它实际上变成了一个行计数器.我不知道在哪里声明/ init这个变量($sub-sub-view-counter),以及在哪里增加它.无论我把它放在哪里,它
在laravel框架中,我有几个嵌套视图如下

<mainview>
  loop @include <sub-view>
    loop @include <sub-sub-view>

我想知道有多少子视图.它实际上变成了一个行计数器.我不知道在哪里声明/ init这个变量($sub-sub-view-counter),以及在哪里增加它.无论我把它放在哪里,它都无法通过每个视图看到和增加.

解决方法

这可能是一个黑客,但除非没有更好的出现……

您将需要一个辅助函数或一个对象(最简单的方法是将它放到模型中).为了演示,我选择了对象变体,因为我相信它更容易处理,而且最重要的是更容易扩展到您的需求.此外,这隐式支持多个计数器,因为每个对象都保存了值(您必须通过几个环节跳转才能通过函数获得此功能).

class Counter
{
    private $count = 0;

    public function inc()
    {
        return ++$this->count;
    }
}

因此,对于此特定实现,您必须在某处创建它.在包含子视图之前,您可以在父视图中放置这样的行,或者使用with()方法从PHP中注入它.

<?php $counter = new Counter(); ?>

你像往常一样包含子视图(记得使用include,而不是渲染,以保持$countervariable)我使用for循环进行测试,但你当然可以使用你想要的任何变种.

@for($i=0; $i<10; $i++)
    @include('home.sub')
@endfor

最后你可以在子视图中调用它

<span>{{ $counter->inc() }}</span>

您可以使用工厂轻松扩展此模型,以从应用程序的任何位置获取计数器值,但对于您的用例,此基本变体应该足够了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读