首页 > 解决方案 > Laravel 5.8 将每个新行包装在一个

  • 问题描述

    我目前正在使用 Laravel 开发一个食谱网站,但在我的食谱展示页面(显示单个食谱)上遇到了问题。食谱展示页面显示描述、成分和分步说明。我的成分和分步说明都作为一个字符串插入到我的数据库中。输入表单要求用户在单独的行上列出每个成分/步骤。然后我使用 PHP 函数 nl2br() 将信息显示为列表。但是,我非常希望能够控制每一行,最好能够在每一行周围包裹一个 li,我以后可以在 CSS 中设置样式。

    我在 Stackoverflow 上找到了这个链接:wrap new line variable with <li>

    我相信这就是我正在寻找的东西,但是,我不确定如何将其调整为 Laravel。目前我正在使用这行代码来检索成分并逐步进行:

    <p>{!! nl2br(e($recipe->directions)) !!}</p>
    
    <p>{!! nl2br(e($recipe->ingredients)) !!}</p> 
    

    对此的任何帮助将不胜感激,因为它有点超出我目前的专业领域!让我知道我是否需要进一步澄清这个问题或为你们提供更多背景信息!太感谢了!:)

    标签: phplaravelforeach

    解决方案


    通过新的换行符分解字符串,将输入分解为行数组。

    $lines = explode("\n", $recipe->directions);
    

    <li>用元素输出每一行:

    <ul>
    @foreach ($lines as $line)
    <li>{{$line}}</li>
    @endforeach
    </ul>
    

    推荐阅读