【问题标题】:How to call a foreach select box in controller to a blade view with laravel?如何使用 laravel 将控制器中的 foreach 选择框调用到刀片视图?
【发布时间】:2018-07-17 12:09:22
【问题描述】:

我正在使用 laravel 5.2,我有一个字段是一个选择框,我在控制器中调用它以显示在我的视图中。但是选择框的值没有出现。当我在控制器中的代码是这样的:

foreach($getDataListPengikut as $dtListPengikut):
        $msg["opt"] .= '<tr>
            <td><select class="form-control" id="name_{{ $dtListPengikut->KODE }}" name="name[]" data-live-search="true" style="width:100%">
                <option value=""> --Silahkan Pilih-- </option>
                    @foreach ($getPengikut as $getPeng)
                        <option value="{{ $getPeng->KODE }}">{{ $getPeng->DESKRIPSI }}</option> 
                    @endforeach
                </select>
            </td> 
            <td><input type="text" value="'.$dtListPengikut->KETERANGAN.'" id="ket_'.$dtListPengikut->KODE.'" name="ket[]" placeholder="Keterangan" class="form-control ket_list" style="text-transform:uppercase" required="false" />
            </td>    
            <td><button type="button" name="add" id="add2" class="btn btn-success"><b>+</b></button>
            </td>
        </tr>';
    $no++;
    endforeach;

在我的选择框里面是{{ $getPeng-&gt;DESKRIPSI }}

当我把我的代码改成这样的时候:

<select class="form-control" id="name_'.$dtListPengikut->KODE.'" name="name[]" data-live-search="true" style="width:100%">
<option value=""> --Silahkan Pilih-- </option>
'. foreach($getPengikut as $getPeng) .'
    <option value="'. $getPeng->KODE.'"> '.$getPeng->DESKRIPSI.' </option> 
'.endforeach.'
</select>

我遇到了一个错误:

语法错误,意外的“foreach”(T_FOREACH)

【问题讨论】:

    标签: php laravel drop-down-menu foreach laravel-5.2


    【解决方案1】:

    您使用了错误的语法。使用{{ expression }} 而不是"'.。正确的语法是:

    <select class="form-control" id="name_{{ $dtListPengikut->KODE }}" name="name[]" data-live-search="true" style="width:100%">
    <option value=""> --Silahkan Pilih-- </option>
        @foreach ($getPengikut as $getPeng)
            <option value="{{ $getPeng->KODE }}">{{ $getPeng->DESKRIPSI }}</option> 
        @endforeach
    </select>
    

    【讨论】:

    • 如果我把它放在我的视图刀片上它是正确的。但我的问题是我把它放在我的控制器上。如果我把它放在我的控制器中,它在我的下拉列表中仍然是相同的{{ $getPeng-&gt;DESKRIPSI }}。我已经在我的问题中更新了控制器代码
    • @hendraspt 即使您将它放在控制器中,您使用的 foreach 语法也是错误的。此外,正如我在我的回购中展示的那样,putting HTML into a controller 是一个糟糕的主意。正如我所展示的,将所有 HTML 移动到 Blade 模板中,一切都会正常工作。
    【解决方案2】:
    In the view file :
    
    <select class="form-control" id="name_{{ $dtListPengikut->KODE }}" name="name[]" data-live-search="true" style="width:100%">
     <option value=""> --Silahkan Pilih-- </option>
      @foreach ($getPengikut as $getPeng)
            <option value="{{ $getPeng->KODE }}">{{ $getPeng->DESKRIPSI }}</option> 
      @endforeach
    </select>
    
    
    In in the controller:
    $html = '<select class="form-control" id="name_'.$dtListPengikut->KODE.'" name="name[]" data-live-search="true" style="width:100%">
        <option value=""> --Silahkan Pilih-- </option>';
        foreach($getPengikut as $getPeng):
            $html .= '<option value="'. $getPeng->KODE.'"> '.$getPeng->DESKRIPSI.'</option>' ;
        endforeach;
    $html .='</select>';
    

    【讨论】:

    • 您可能想在您的代码中添加一些描述。
    猜你喜欢
    • 1970-01-01
    • 2017-09-03
    • 2019-02-06
    • 2018-06-23
    • 2012-12-10
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 2019-05-25
    相关资源
    最近更新 更多