在Laravel 5.1中使用wp等短代码渲染数据



我的数据库中有以下内容-

<p>This is dummy content for testing</p>
{{LandingPageController::getTest()}}

我想把它呈现在我的视野中。但是当我在Laravel视图中渲染它时,这个{{LandingPageController::getTest()}}在存储在数据库中时会显示出来。 我想调用LandingPageController getTest方法。

请建议我快速解决此问题。

登陆页面控制器

public function getTest(){
return "Hello World!!!";
}

只是使函数静态

public static function getTest(){
return "Hello World!!!";
}

这是您可以这样称呼它的唯一方法{{LandingPageController::getTest()}}但我建议不要在您的刀片文件中这样做,这不是一个好的代码设计。 您应该在控制器中$test = LandingPageController::getTest()返回刀片视图并像这样传递它return view('blade_file_name',compact('test')),在刀片文件中只做{{$test}}

PS - 如果你这样做,你的控制器使用这样的类use PathToControllerLandingPageController

在刀片式服务器文件中使用该控制器的命名空间。 示例

namespace AppHttpControllersLandingPageController;

您可以使用eval()函数将字符串评估为 php 代码

eval — 将字符串评估为 PHP 代码

但这是非常不鼓励的。

eval(( 语言结构非常危险,因为它允许执行任意 PHP 代码。因此,不鼓励使用它。如果您已仔细验证除了使用此构造之外没有其他选择,请特别注意不要在未事先正确验证的情况下将任何用户提供的数据传递到其中。

可以使用通用字符串,例如,{test}在存储中保存内容时。

<p>This is dummy content for testing</p>
{test}

然后,每当您需要显示实际内容时,只需将通用字符串替换为实际值即可。刀片文件中将有以下行:

{{ str_replace('{str}', "Hello World", $content) }}

看看助手。您可以在视图中调用帮助程序函数来呈现文本或 html

有了解决方案,使用"laravel-shortcode"实现功能。

找到了一个非常好的教程,如wordpress等拉拉维尔短码

相关内容

  • 没有找到相关文章

最新更新