首页 > 解决方案 > Laravel 组件的钩子?

问题描述

有没有可以侵入 Laravel 组件的钩子?

例如:

components/foo.blade.php

<div>Foo</div>

在任何方面:

<x-foo />

输出:

<div>Hi Foo</div>
<div>Foo</div>

自动插入一个<div>Hi Foo</div>

我不想使用自定义刀片指令来做到这一点,因为我想<div>Hi Foo</div>在每个组件中插入。

标签: laravel

解决方案


    $dom = new \DOMDocument();
    $dom->loadHtml($post->body);
    $divs = $dom->getElementsByTagName('div');

/** Get the lengths of the div to perform element replacing */

$divLength = $divs->length;

for ($i = 0; $i < $divLength; $i++) {
    $elem=$divs->item(0);

// print innerHTML
$get = $elem->innerHTML; // '<p>foo</p>'

// set innerHTML
$elem->innerHTML = '<p>hi</p>'.$get;

// print document (with our changes)
echo $dom->saveHTML();
}

在控制器中你可以使用 DOM 可能会帮助你


推荐阅读