Как я могу включить внешний php-файл в laravel blade view

#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 в включенном представлении, либо выполнить вычисления в родительском (например. контроллер) и передать их в соответствующее представление.