我的数据库中包含以下内容 -
<p>This is dummy content for testing</p>
{{LandingPageController::getTest()}}
我想把它渲染到我的视野中。但是当我在Laravel视图中渲染时,这个{{LandingPageController::getTest()}}
会在存储在DB中时显示出来。
我想在我的视图中调用LandingPageController getTest
方法。
请建议我快速解决此问题。
目标网页控制器
public function getTest(){
return "Hello World!!!";
}
答案 0 :(得分:1)
只需使函数静态
public static function getTest(){
return "Hello World!!!";
}
这是你可以像{{LandingPageController::getTest()}}
这样调用它的唯一方法,但我建议不要在你的刀片文件中这样做,这不是一个好的代码设计。您应该在控制器中执行$test = LandingPageController::getTest()
退回刀片视图并将其传递给return view('blade_file_name',compact('test'))
并在您的刀片文件中执行{{$test}}
PS - 如果您这样做,您的控制器将使用类似use Path\To\Controller\LandingPageController
答案 1 :(得分:0)
在刀片文件中使用该控制器的命名空间。例子
namespace App\Http\Controllers\LandingPageController;
答案 2 :(得分:0)
您可以使用eval()
函数
eval - 将字符串评估为PHP代码
但非常气馁。
eval()语言构造非常危险,因为它允许执行任意PHP代码。因此不鼓励使用它。如果您已经仔细验证除了使用此构造之外没有其他选择,请特别注意不要将任何用户提供的数据传递到其中,而不事先正确验证它。
在将内容保存到存储中时,您可以使用通用字符串{test}
。
<p>This is dummy content for testing</p>
{test}
然后,只要您需要显示实际内容,就可以简单地用实际值替换通用字符串。您的刀片文件中有此行:
{{ str_replace('{str}', "Hello World", $content) }}
答案 3 :(得分:0)
看看Helper。您可以在视图中调用辅助函数来渲染文本或html
答案 4 :(得分:0)
获得解决方案,通过“laravel-shortcodes”实现功能。
在laravel-shortcodes上找到了一个非常好的教程,比如wordpress