Отличись между @yield и @include в Бладе де Ларавэль

Привет люди хотели знать, есть ли какое-то техническое различие, в принципе и для функции, которую я даю им, они функционировали бы равно.

Кажется более ясным использовать @include. но я хотел бы знать, есть ли какая-то деталь, которую он был бы должен знать, чтобы не злоупотреблять им.

2
задан 23.09.2016, 18:42
2 ответа

@yield будешь искать секцию, установленную на странице (или вид) настоящий и он будет показывать ее в этом месте, возможно добавлять ему также стандартную настройку в случае, что ничего нет в вышеупомянутой секции.

Так @yield('titulo', 'Mi sitio') будешь включать то, что было определено в @section Blog @endsection в виде (текст Blog в этом случае), если нет ничего определенного, будет показывать текст Мой сайт.

Исходный код @yield:

protected function compileYield($expression)
{
    return "<?php echo \$__env->yieldContent{$expression}; ?>";
}

public function yieldContent($section, $default = '')
{
    $sectionContent = $default;

    if (isset($this->sections[$section])) {
        $sectionContent = $this->sections[$section];
    }

    $sectionContent = str_replace('@@parent', '--parent--holder--', $sectionContent);

    return str_replace(
        '--parent--holder--', '@parent', str_replace('@parent', '', $sectionContent)
    );
}

@include будешь включать просто другой вид в настоящую, такой формы, которая @include('blog.articulo') будешь искать файл views\blog\articulo.blade.php и он будет включать это в настоящий вид, весь Ваш контент.

Код шрифта @include:

protected function compileInclude($expression)
{
    if (Str::startsWith($expression, '(')) {
        $expression = substr($expression, 1, -1);
    }

    return "<?php echo \$__env->make($expression, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>";
}
1
ответ дан 24.11.2019, 13:19

Что я вижу, как различие такое, как он осуществляется в коде, например.

, Если у тебя есть один @include, равно как помогать в php состоит в том, что он только состоит для кода в специфическом средстве в том, что ты это называешь с другого сайта. взамен @yield ты помещаешь ему "имя" из-за того, что это говоришь каким-то образом. А именно @yield('contenido') и этот контент ты можешь показывать это с других совещаний, которые были снабжены ссылками в этот @yield.

Obiviamente, что в коде ты делаешь ему она extensiГіn куда эта этот yield.

AsГ - такой, как я это вижу. @yield для многих вызовов и @include для одной в специфическом средстве.

1
ответ дан 24.11.2019, 13:19

Теги

Похожие вопросы