在视图中正确显示数组的内容

时间:2018-04-05 18:29:51

标签: php laravel

我有一个PaymentController,它获取一个数组并返回该数组" selectedTypes"到registration.blade.php:

class PaymentController extends Controller
{
    public function storeQuantity(Request $request){
        $selectedTypes = $request->type;
        return view('posts.registration')->with('selectedTypes', $selectedTtypes);
    }
}

现在在registration.blade.php文件中,我想显示故障单类型名称和所选数量,但它无法正常工作。代码是:

<div class="card_body">
    <ul class="list-group list-group-flush">
        <li>
            <span>Ticket Type</span>
            <span>Quantity</span>
        </li>
        <?php var_dump($selectedTypes); ?>

        @foreach($selectedTypes as $selectedType)
            <li class="list-group-item list-group-registration d-flex align-items-center justify-content-between">
                <span class="font-size-sm">{{$selectedType[0]}}</span>
                <span class="font-size-sm">{{$selectedType[1]}}</span>
            </li>
        @endforeach
    </ul>
</div>

问题在于它始终显示&#34; 2&#34;。例如,如果用户选择2作为故障单类型&#34;中心工作台&#34;两个用于票型和#34;横向工作台&#34;出现了:

 <div class="card_body">
    <ul class="list-group list-group-flush">
        <li>
            <span>Ticket Type</span>
            <span>Quantity</span>
        </li>
            <li>
                <span class="font-size-sm">2</span>
                <span class="font-size-sm">2</span>
            </li>
            <li>
                <span class="font-size-sm">2</span>
                <span class="font-size-sm">2</span>
            </li>
    </ul>
</div>

而不是:

 <div class="card_body">
    <ul class="list-group list-group-flush">
        <li>
            <span>Ticket Type</span>
            <span>Quantity</span>
        </li>
            <li>
                <span class="font-size-sm">Center Bench</span>
                <span class="font-size-sm">2</span>
            </li>
             <li>
                <span class="font-size-sm">Lateral Bench</span>
                <span class="font-size-sm">2</span>
            </li>
    </ul>
</div>

&#34; <?php var_dump($selectedTypes); ?>&#34;所示:

array(3) { ["a"]=> string(1) "2" ["center bench"]=> string(1) "2" ["lateral bench"]=> NULL }

1 个答案:

答案 0 :(得分:1)

您正在访问的数组不正确。 $ selectedType不是数组。所以当你像这个$ selectedType [0]一样访问时,它会获得字符串的第一个字符,即2。

试试这个:

<div class="card_body">
    <ul class="list-group list-group-flush">
        <li>
            <span>Ticket Type</span>
            <span>Quantity</span>
        </li>
        <?php var_dump($selectedTypes); ?>

        @foreach($selectedTypes as $k=>$selectedType)
            <li class="list-group-item list-group-registration d-flex align-items-center justify-content-between">
                <span class="font-size-sm">{{$k}}</span>
                <span class="font-size-sm">{{$selectedType}}</span>
            </li>
        @endforeach
    </ul>
</div>