【问题标题】:Laravel: Looping through dynamic route parameter in blade templateLaravel:通过刀片模板中的动态路由参数循环
【发布时间】:2021-01-22 21:42:15
【问题描述】:

我想在刀片模板中使用附加参数(在本例中为一系列 ID)循环命名路由。我已经用星号突出显示了我想要在代码中执行此操作的行。我的目的是在单击“下一步”按钮时访问下一页。下一页看起来与前一页完全一样,除了一张不同的问题卡。目前,点击按钮后页面不会发生变化。

这是定义的路线:

Route::get('/quiz/{id}', [QuestionController::class, 'show'])->name("question.show"); 

这是生成视图的 html 刀片模板。

`@foreach ($questions as $question) 

                
                <div class="col-12 col-md-6 my-2 offset-md-3">

               


                    <div class="card shadow p-3 mb-5 border bg-warning rounded border">
                    
                        <h5 class="card-header"> {{ $question->category }} </h5> 
                    
                        <div class="card-body">
                            
                            <h6 class="card-subtitle mb-2 text-muted">{{ $question->text }}</h6>
                        
                            @foreach($question->options as $option)
                                <br>
                                <input  type='radio' name="{{ $question->id }}" value="{{ $option->id }}">     
                                 {{ $option->text}} <br>
                            @endforeach
                            
                        </div>
                         
                        **<a href = "{{route('question.show',['id' => $question])}}" class="btn btn-light btn-sm offset-2 offset-md-10" role="button">
                            Next**
                        </a>
                        
                    </div>
                
              

                </div>
        
            @endforeach`

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您可以通过在 foreach 循环中使用索引来做到这一点。

    改变这个:@foreach ($questions as $question)

    对此:@foreach ($questions as $index=&gt;$question)

    然后在你的锚标记中做这样的事情:

    <a href="{{route('question.show',['id' => $questions[$index + 1]])}}" 
       class="btn btn-light btn-sm offset-2 offset-md-10" role="button">
    

    确保用 if 语句包围按钮以捕捉最后一个问题。

    @if( $index + 1 &lt; count($questions) )

    编辑:缺少括号

    【讨论】:

    • 谢谢@dengsauve。它抛出一个错误:“未定义的偏移量:1”
    • 你使用了if条件吗?
    • 是的,当我使用 if 条件时,'next 按钮消失了。
    • @ShreyaAgarwal 单击下一个按钮时是否得到“未定义的偏移量:1”?
    • 是的。然后我在按钮周围添加了 if 条件,这使得“下一步”按钮消失了。
    猜你喜欢
    • 2014-04-21
    • 1970-01-01
    • 2015-07-12
    • 2015-12-01
    • 2019-03-02
    • 2020-09-26
    • 1970-01-01
    • 2017-09-26
    • 2018-12-21
    相关资源
    最近更新 更多