如何发生此错误"未定义的变量:selectedType"

时间:2018-04-27 17:46:10

标签: laravel

我在registration.blade.php中有以下代码:

@foreach($selectedTypes as $k=>$selectedType)
    <li>
        <span class="font-size-sm">{{$k}}</span>
        <span class="font-size-sm">{{$selectedType['quantity']}}</span>
        <span class="font-size-sm">{{ number_format($selectedType['price'], 2)}}€</span>
        <span class="font-size-sm">{{ number_format($selectedType['subtotal'], 2)}}€</span>
    </li>
@endforeach 

有时在registration.blade.php页面中出现错误&#34; http://proj.test/congress/1/congress-test/registration&#34;:

Undefined variable: selectedType 

问题应该是会话&#34; selectedTypes&#34;不存在或已过期。因此,如果用户位于具有该代码的注册页面中,则可能需要将用户重定向到他选择故障单类型的页面&#34; @foreach($selectedTypes as $k=>$selectedType)...&#34;和会话&#34; selectedTypes&#34;不存在您知道这是否是解决问题的正确方法,以及将用户重定向到具有该路线的会议详细信息页面所需的内容:

Route::get('/congress/{id}/{slug?}', [
    'uses' => 'FrontController@show',
    'as'   =>'congresses.show'
]);

如果用户位于具有以下路线的注册页面中,并且会话&#34; selectedTypes&#34;不存在?

Route::get('/congress/{id}/{slug?}/registration', [
    'uses' => 'RegistrationController@displayRegistration',
    'as'   =>'congresses.registration'
]);

//方法storeQuantities()其中selectedTypes存储在会话

public function storeQuantities(Request $request, $id, $slug = null){

        $ttypeQuantities = $request->get('ttypes');

        foreach($rtypeQuantities as $rtypeName => $quantity){
                $ttype = TicketType::where('name', $ttypeName)->firstOrFail();
                $price = $ttype->price;
                $selectedTypes[$ttype->name]['quantity'] = $quantity;
                $selectedTypes[$ttype->name]['price'] = $price;
                $selectedTypes[$ttype->name]['subtotal'] = $price * $quantity;

                $selectedTypes[$ttype->name]['id'] = $ttype->id;
        }
        Session::put('selectedTypes', $selectedTypes);
        return redirect(route('congresses.registration',['id' => $id, 'slug' => $slug]));
    }

1 个答案:

答案 0 :(得分:0)

始终检查$selectedType变量

@foreach($selectedTypes as $k=>$selectedType)
    <li>
        <span class="font-size-sm">{{$k}}</span>
        @isset($selectedType)
           <span class="font-size-sm">{{$selectedType['quantity']}}</span>
           <span class="font-size-sm">{{ number_format($selectedType['price'],
2)}}€</span>
          <span class="font-size-sm">{{ number_format($selectedType['subtotal'], 2)}}€</span>
        @endisset
    </li>
@endforeach