#php #laravel
#php #laravel
Вопрос:
Я хочу включить функцию PHP внутри цикла foreach, обычно я использую @include для включения файлов блейда, но я не знаю, почему на этот раз это не работает! но если я помещаю функцию внутри основного файла, она работает, но при включении она не работает, и я получаю ошибку Неопределенная переменная: total_price (View: ….
Я хочу использовать эту функцию в нескольких файлах, поэтому мне нужно ее включить
это содержимое файла, который я хочу включить: cart_functions.blade.php
@php
$total_extra_price = $cart->extras->sum('price');
$food_price = $cart->variations->sum('price');
$total_extra_variation_price = $cart->extra_variations->sum('price');
$total_price = $total_extra_price $food_price $total_extra_variation_price;
@endphp
main.blade.view
@foreach($carts as $cart)
@include('cart.cart_functions')
{{number_format($total_price, 2, '.', ',')}}
@endforeach
Комментарии:
1. Каков адрес папки блейд-файла? Пример включения и передачи информации => @include(‘view.name ‘, [‘некоторые’ => ‘данные’])
2. Я не думаю, что это возможно, поскольку родительский шаблон ничего не знает о области действия включенного шаблона
3. @AkbarRahmanii адрес папки — просмотр-> корзина
Ответ №1:
В блейде Laravel переменная scope является родительской для дочернего элемента, а не наоборот.
Когда вы включаете блейд-представление, рендеринг делает переменные доступными только внутри области конкретного рендеринга.
Вам нужно либо вывести $total_price
в включенном представлении, либо выполнить вычисления в родительском (например. контроллер) и передать их в соответствующее представление.