Laravel Blade,将 php 翻译为 Blade 的递归视图

2024-06-25

我有一个带有 php 的递归视图,这显然是错误的,所以我必须将其转换为 Blade,以递归调用视图。

我的 php 递归代码(comments.blade.php):

<?php
tree($Comments, 0, 0);
$var = -1;
function tree($Comments, $parent_id = 0, $level=0, $c=0) {
  global $var;
  foreach($Comments as $Comment) {
      if($Comment['parent_id'] == $parent_id) {
        If ($level > $var)  $var++; else {  
                for ($i = $var-$level+1; $i>0; $i--) { if ($c < 0) echo '</div> </div>'; else $c--;  };   
                $var=$level; 
                   }; 
        echo '<div class="media">
                <div class="media-left">
                  <a href="#">
                  <img class="media-object" src="..." alt="...">
                  </a>
                </div>
              <div class="media-body">
                <h4 class="media-heading">Media heading</h4>';
        tree($Comments, $Comment['id'], $level+1,$c);
        }
  };
};
?>

这就是我正在寻找的(在 comments.blade.php 中:

<div>
    @include('recursive', ['comments' => $comments, 'parent_id' => 0, 'level' => 0, 'c' => 0])
</div>

问题是我不知道如何将第一个代码片段中的所有变量转换为blade,因此要创建Recursive.blade.php:

Edit 1:

伙计们请帮助我,我在这个该死的算法上工作了 2 天,但我再次陷入了一个比 2 天前更大的问题:(

对于某些人来说,不明白为什么我坚持使用该代码,因为上面的代码是用于制作像 Reddit 上那样的线程评论的算法,在该算法中有 2x echo 和媒体类 echo。 如果我在媒体类之后连续放置 2 个评论,则下一个评论将与第一个评论一起创建,具有相同的parent_id 的评论,这意味着它们是属于同一评论的子级(在它们之前的父级),如果 2x div 没有放置,这意味着第一个评论之后的下一个评论是第一个评论的子级,依此类推。这是我的算法,我这样做是为了转换为刀片,因为我有一些厚颜无耻的投票按钮,它们使用我将集成到递归设计中的路线,这就是为什么我想转换为刀片,但我不知道如何。 :(


为什么要递归调用来生成视图,您可以创建一个文件名comment.blade.php并在主blade文件中运行一个循环,其中将包含comment.blade.php并传递注释对象或数组,然后传递注释.blade.php 文件将使用该 $comment 对象或数组的属性。

例如:

  $Comments = [
    [
      'body' => 'First comment',
      'name' => 'First Commentator'
    ],
    [
      'body' => 'Second comment',
      'name' => 'Second Commentator'
    ],
    [
      'body' => 'Third comment',
      'name' => 'Third Commentator'
    ],
    [
      'body' => 'Fourth comment',
      'name' => 'Fourth Commentator'
    ],
    [
      'body' => 'Fifth comment',
      'name' => 'Fifth Commentator'
    ],
    [
      'body' => 'Sixth comment',
      'name' => 'Sixth Commentator'
    ],
  ];

在你的主刀片文件中,可以是index.blade.php或任何其他

  @foreach($Comments as $Comment)
    @include('comment',['comment'=>$comment])
  @endforeach

comment.blade.php 文件会有

<div class="media">
    <div class="media-left">
      <a href="#">
      <img class="media-object" src="..." alt="...">
      </a>
    </div>
    <div class="media-body">
      <h4 class="media-heading">Media heading</h4>
    </div>
  </div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel Blade,将 php 翻译为 Blade 的递归视图 的相关文章

  • 通知用户消息仍在输入中

    我正在使用 Laravel 5 6 7 Socket IO 和 vue js 我没有使用 Pusher 和 redis 下面是我的代码 用于向与我一对一聊天的用户发送消息 var url http localhost 6001 apps M
  • Laravel 使用 laravel-cors 和 axios 进行 POST 的“CSRF 令牌不匹配”

    我有一个正在运行的domain A拉拉维尔 5 8返回 API 的引擎网络路线 它必须检查来源才能只服务几个域 包括domain B Barryvdh laravel cors我安装了barryvdh laravel cors https
  • vagrant 与 laravel homestead 共享

    我遇到了让 vagrant share 与 laravel homestead vagrant box 结合使用的问题 我的 homestead yaml 文件如下所示 ip 192 168 10 10 memory 2048 cpus 1
  • Carbon 两个日期之间的时间差,格式为 hh:mm:ss

    我试图弄清楚如何获取存储在数据库中的两个日期时间字符串 并将其转换为时间格式的差异 hh mm ss 我在看diffForHumans 但这确实给出了我想要的格式并返回类似的东西after ago ETC 这很有用 但不适用于我想做的事情
  • Laravel 保存一对多关系

    我在 Laravel 中建立了以下关系 OrderStatus Model hasMany Order Order Model belongsTo OrderStatus 数据库设置为orders表和一个order statuses桌子 这
  • Laravel 文件下载 - php_fileinfo 扩展未启用

    我正在使用 Laravel 5 4 13 和 PHP 7 1 并迁移到共享主机 我正在尝试使该网站正常运行 但由于缺少扩展名而无法正常运行 php fileinfo 这是网站崩溃的代码 file base path storage app
  • Illuminate\Contracts\Container\BindingResolutionException - 目标类 [CommandMakeCommand] 不存在

    使用Laravel 8 75并尝试将composer json中的php 8 1升级为 php 8 1 并收到错误 Illuminate Contracts Container BindingResolutionException 目标类
  • Laravel 4:处理种子中的关系

    L4 的新种子功能中是否有一种简单的方法来管理多对多关系 一种方法是为数据透视表制作种子 但我需要做很多工作 对于此类事情的良好工作流程有什么想法吗 在最新版本的 Laravel 4 中 您可以在 DatabaseSeeder 类的 run
  • 从 Laravel 中的命令调用控制器方法

    我有一个通过 Redis Pub Sub 监听的命令 收到发布后 我想调用控制器方法 以便可以更新数据库 但是 我无法找到任何关于如何从项目内部但在路由外部调用带有参数的控制器方法的解决方案 我见过的最接近的东西是这样的 return re
  • Laravel Forge + DigitalOcean - 添加仅对目录具有受限访问权限的 SFTP 用户

    我在 DigitalOcean Droplet 中使用 Laravel Forge 我需要向我的一个客户端授予对服务器上特定目录的 SFTP 访问权限 他只需要对该目录的读 写访问权限 而我的设置遇到问题 我已按照以下步骤操作https b
  • 如何在 Laravel 中的 get() 之后对集合进行分页?

    我对两个查询结果进行了合并 效果很好 events1 App Event Where valid to gt today gt orderByRaw valid to ASC gt get events2 App Event Where v
  • Laravel /broadcasting/auth 总是失败并出现 403 错误

    我最近深入研究了 Laravel 5 3 的 Laravel Echo 和 Pusher 组合 我已成功建立公共频道并转向私人频道 我在 Laravel 从 broadcasting auth 路由返回 403 时遇到了麻烦 无论我做什么来
  • laravel 4嘲笑模拟模型关系

    假设我有两个模型延伸自Eloquent并且它们彼此相关 我可以嘲笑这段关系吗 ie class Track extends Eloquent public function courses return this gt hasMany Co
  • 通过 Laravel 框架集成现有项目?

    我已经从 github 克隆了一个项目 现在我需要集成该项目 那么如何使用 laravel 框架 我是否需要创建一个新项目然后需要替换文件夹 或任何其他替代方案 因为我是这个框架的新手 帮助我 这是一个广泛的问题 因为这取决于您的项目 而我
  • 使用 axios get 请求发送对象[重复]

    这个问题在这里已经有答案了 我想发送一个带有对象的获取请求 对象数据将在服务器上用于更新会话数据 但该对象似乎没有正确发送 因为如果我尝试将其发送回去打印出来 我只会得到 N 我可以像这样使用 jQuery 来完成它 它可以工作 get m
  • 如何在laravel中获取youtube视频的id

    我想获取我使用此代码的 youtube 视频的 id url video gt link if preg match youtube com watch v url videoId values videoId 1 else if preg
  • 如何将 Filesystem 类的 glob 方法与 StorageFacade 结合使用?

    这涉及到拉拉维尔 5 我可以看到Illuminate Filesystem Filesystem一个方法叫做glob pattern flags 0 不幸的是 这个方法并没有体现在默认的情况下FilesystemAdapter随 Larav
  • Laravel mail 假装不打印任何内容

    I set pretend gt true in the mail php 创建了这个new php view div E mail user gt email br User user gt username br Pass user g
  • 使用 laravel 拒绝 .composer/config 文件权限

    我在 ubuntu virtualbox 上有一个 laravel 项目 我曾经跑步composer update一切都很好 我不知道有什么变化可能会影响这一点 但现在当我跑步时composer update I get file get
  • Laravel 5 中的两个登录表单

    我一直想知道如何在 laravel 5 中制作两个登录表单一段时间 原因是因为我有一个多站点项目 我在一个项目中拥有管理站点和公共站点 我对路由进行了分组 以便管理路由回答一个域 公共路由回答另一个域 如下所示 Route group ar

随机推荐

  • 如何在nodejs中处理xhr blob post

    客户端代码 var xhr new XMLHttpRequest xhr open POST frame true xhr send blob 服务器代码 app use bodyParser urlencoded extended fal
  • swagger文件默认属性的控制

    在 1 5 16 版本中使用 swagger core swagger annotations 控制我的数据模型的 swagger 文件中的默认属性时遇到问题 有一个定义 HTTP POST 输入 JSON 对象的 POJO import
  • 具有曼哈顿距离启发式的 A* 算法

    我一直在用 C 语言开发一个 15 个谜题求解器 我的代码使用的大量内存给我带来了一些问题 我不会发布我的代码 因为它太长了 我已经实现了我正在使用的大部分库 它可能会给您带来困惑 让我们从基础开始 我现在正在使用的东西是 全部用C实现 斐
  • 如何自动将多个 Monticello 提交从本地存储库复制到 Smalltalkhub.com?

    白天 我将多个版本的 Monticello 软件包提交到 磁盘上的本地存储库 稍后我想将本地存储库与 Smalltalkhub com 存储库同步 目前 我使用 Monticello 浏览器将本地提交手动一一复制到 Smalltalkhub
  • 不允许在文本区域中换行

    使用 jQuery 如何不允许插入新行 通过按 Enter 或复制文本 在半伪代码中 textarea keydown function this remove new lines Thanks EDIT 是像下面这样粗暴还是有更好的方法
  • 如何只编译一次.jrxml

    请帮忙 每次生成报告时都会编译 jrxml 我只想编译一次 请帮我看看我需要添加什么条件 我没有使用输入 输出流 使用compileReport可以只编译一次 不要将 JRXML 文件放在可通过 Web 访问的任何地方 JRXML 文件包含
  • 在opencv中找到物体的凸包?

    我是根据教程写的here http docs opencv org doc tutorials imgproc shapedescriptors hull hull html但我无法获得图像的凸包 我使用的是教程中所示的类似手部图像 我得到
  • GWT 树的工具提示:向节点添加鼠标悬停

    我正在尝试为 GWT 中的树节点添加工具提示 因此 我想为树的节点而不是树本身添加一个鼠标悬停侦听器 Treelistener 接口似乎是我想要的 但现在已弃用它来代替处理程序系统 我不太明白如何在单元格上获得鼠标悬停行为 因为我似乎只能将
  • 如何在 HTML5 画布元素上写入文本?

    是否可以在 HTML5 上编写文本canvas var canvas document getElementById my canvas var context canvas getContext 2d context fillStyle
  • 如何为构造函数生成的右值提供左值的生命周期?

    while model condition auto data yield data auto manipulate model data model get info args 我有一个 RAII 类型的对象manipulate 当它超出
  • Android 片段的单个实例

    有没有一种方法 当我们使用ft addToBackStack null 我们只向 BackStack 添加一个实例 当用户按下后退按钮时 将同一片段的多个实例添加到后退堆栈会造成混乱 您可以尝试为 addToBackStack 方法设置一个
  • 为什么不是所有代码编译位置无关?

    在 gcc 中编译共享库时 fPIC 选项将代码编译为位置无关的 是否有任何原因 性能或其他 导致您不编译所有位置独立的代码 它添加了一个间接 对于与位置无关的代码 您必须加载函数的地址 然后跳转到它 通常 函数的地址已经存在于指令流中
  • 无法从 Java SE 客户端访问 EJB - 查找失败错误

    我正在使用 Netbeans 并尝试使用 EJB 我有两个项目 2 个单独的应用程序 1 一个名为 EnterpriseApp 的 Java ME 项目 2 一个名为 Test 的标准 Java SE 项目 现在这就是我所做的 在 Ente
  • 我无法在 Java 程序(swing)中的面板/画布/窗口上绘制图形。有任何想法吗?

    我无法在 Java 程序 使用 swing 中在面板 画布 窗口上绘制图形 文本 我什至尝试将其分成两个类 其中一个类中包含paintComponent 扩展JPanel 而另一个类中包含其他内容 扩展JFrame 我尝试过带有画布和不带有
  • 查找每个客户组的最新帐户

    我有一个包含客户信息的表 每个客户都会分配一个客户 ID 他们的 SSN 他们在开设更多帐户时会保留该 ID 两个客户可能使用同一个帐户 每个客户都有自己的 ID 帐号不按日期排序 我想找到每个客户或客户组的最新帐户 如果两个客户曾经一起使
  • 如何检查 .sql 文件中的 SQL 语法?

    如何检查 sql 文件中的 SQL 语法 SELECT STATEMENT DIGEST TEXT在MySQL 8 0中可以用于MySQL查询语法验证 8 0 4 gt SELECT STATEMENT DIGEST TEXT FLUSH
  • 有没有 py2exe 的替代品? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有没有 py2exe 的替代品 py安装程序 http www pyinstaller org 是跨平台的并且非常强大 有许多第三方软
  • C++ 使用 std::chrono 以一种很好的方式测量成员函数的执行情况

    我想优化我的应用程序 特别是某些功能的执行速度 想象一下有一个带有一些成员函数的类 class Test public Test virtual Test int init int arg1 double arg2 private 在我的构
  • 在 Ubuntu 上将 NodeJS 作为服务运行

    我尝试按照以下步骤将 nodejs 作为服务运行 1 sudo vim servicelocator conf 2 past this conf description node js server author mahmoud elgoh
  • Laravel Blade,将 php 翻译为 Blade 的递归视图

    我有一个带有 php 的递归视图 这显然是错误的 所以我必须将其转换为 Blade 以递归调用视图 我的 php 递归代码 comments blade php