如何从数据库行中获取项目列表并在Laravel中返回列表?

时间:2019-03-09 20:58:08

标签: php mysql laravel

我有一个名为“ Recipes”的数据库表,在该表中有一列为“ ingredients”。这些成分来自浏览器中的HTML输入。我要求用户通过按Enter键并跳到下一行来分离每种成分。我遇到的问题是,当我在show.blade.php页面上返回此数据时,它以一个长字符串形式返回。我还无法弄清楚如何将其作为列表返回。

示例:

在我称呼成分数据的网站部分中,我得到了“燕麦牛奶香蕉肉桂肉桂枫糖浆”。

我想得到

  1. 燕麦
  2. 牛奶
  3. 香蕉
  4. 肉桂
  5. 枫糖浆

我正在使用Laravel 5.7来构建应用程序,并且正在调用{{$ recipe-> ingredients}}。被PHP explode()函数弄乱了一点,但是没有运气。我不是很有经验,所以我确定这不是一个很难解决的问题,我似乎无法在网上找到任何东西。也许我不是在提出这个问题,对吗?

我的create.blade.php文件的代码是:

 <div class="createRecipeBody"> 
            <fieldset>
                <small class="errorMessage">{{ $errors->first('title') }}</small>
                <label for="title">Give your creation a title</label>
                <input type="text" name="title" id="title">
            </fieldset>

            <fieldset>
                <small class="errorMessage">{{ $errors->first('description') }}</small>
                <label for="description">Describe your creation</label>
                <textarea name="description" id="description"></textarea>
            </fieldset>

            <fieldset>
                <small class="errorMessage">{{ $errors->first('ingredients') }}</small>
                <label for="ingredientList">List the ingredients</label>
                <textarea name="ingredients" id="ingredientList" placeholder="Please list each ingredient on a seperate line"></textarea>
            </fieldset>

            <fieldset>
                    <small class="errorMessage">{{ $errors->first('directions') }}</small>
                    <label for="ingredientList">Directions</label>
                    <textarea name="directions" id="directions" placeholder="Please list each step on a seperate line"></textarea>
            </fieldset>

            <div class="terms">
                <label class="authenticationCheck">
                    <input class="termsOfService" type="checkbox">
                    <span>
                        Public Recipe
                    </span>
                </label>

                <label class="authenticationCheck">
                    <input class="termsOfService" type="checkbox">
                    <span>Private Recipe</span>
                </label>
            </div>
            <button class="submitRecipe" type="submit">Share your creation</button>
        </div>
    </section>

这是我的show.blade.php:

<h2>Ingredients</h2>
                <span class="ingredients">
                    <span class="ingredientItem firstItem">
                    <span><i class="far fa-clock"></i> {{$recipe->prepTime}}</span>
                    </span>

                    <span class="ingredientItem">
                    <span><i class="fas fa-concierge-bell"></i> {{$recipe->servings}}</span>
                    </span>

                    <span class="ingredientItem">
                    <span><i class="fas fa-weight"></i> {{$recipe->calories}}</span>
                    </span>
                </span>
                <hr>
                <p>Here's what you will need...</p>
                    <div>
                        <ol>
                            <li> {{$recipe->ingredients}}</li>
                        </ol>
                    </div>

                    <br>
                <h2>Directions</h2>
                <hr>
                <p>{{$recipe->directions}}</p>

                <h2>Chef's Tip</h2>
                <hr>
                <p>This feature is not yet enabled</p>
            </div><!-- col-sm-6 -->

1 个答案:

答案 0 :(得分:1)

"scripts": {
  ...
  "deploy-multiple": "./replace1.js && docusaurus-build && ./replace2.js && docusaurus-build",
  ...
}

像这样? 首先,我将字符串分解为单个单词。 然后,我将项目更改为您要求的格式。 然后将元素连接到字符串。

编辑:列表现在从1开始