Передача переменных через лезвие включает в себя Laravel

Я новичок в Laravel, и я получаю практику преобразования предыдущего (простого) веб-сайта в Laravel.

По сути, я создал шаблон со структурой HTML и изменил основное содержимое, используя @включает в себя и @урожай.

Интересные части в html шаблон.blade.php похожи на

<!DOCTYPE html>
<html lang = "{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<!-- Title -->
<title>@yield('title')</title>

....
....

<!-- CSS Customization -->
<link rel = "stylesheet" href = "/assets/css/custom.css">
@yield('css')

....
....

@include('include._header')
@include('include._test_script')
@include('include._footer')

....
....

<!-- JS Customization -->
<script src = "/assets/js/custom.js"></script>
@yield('js')

Маршрутизатор вызывает test.blade.php, который включает шаблон. Этот блейд-файл имеет некоторый пользовательский php-код с переменной $extra_script.

<?php $extra_script = " alert(0); console.info(0);";?>

@extends('layouts.template')

@section('css')
   ....
@endsection

@section('js')
    ...
    <script>
        {!! $extra_script !!}
    </script>
@endsection

При загрузке этой страницы скрипт работает нормально, и я вижу предупреждающее сообщение с содержимым 0.

Теперь я пытаюсь обновить $extra_string в файл /include/test_script.blade.php, но это не работает.

Этот включаемый файл лезвия выглядит так:

 @php
     $extra_script = " alert(1); console.info(1);";
 @endphp

 or

 <?php $extra_script = " alert(1); console.info(1);"; ?>

В результате ошибок нет, но предупреждение (0) по-прежнему отображается.

Я понимаю, что не элегантно иметь PHP-код в шаблоне блейда, а в контроллере, но это быстрый и быстрый перенос, чтобы через некоторое время веб-сайт был онлайн.

Как это исправить в поле зрения?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
341
1

Ответы 1

Я бы сказал, что порядок неправильный, сначала test.blade.php простирается от template.blade.php. Это template.blade.php тот, кто устанавливает предупреждение на 1 с помощью @include('include._extra_script'), но затем, когда test.blade.php расширяется из этого шаблона, он перезаписывает $extra_script на тот, который предупреждает 0.

Другие вопросы по теме