Рендеринг данных в Laravel 5.1 с использованием таких шорткодов, как wp - PullRequest
0 голосов
/ 14 мая 2018

У меня есть содержимое ниже в моей БД-

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

Я хочу сделать это на мой взгляд. Но когда я рендерил это в виде Laravel, это {{LandingPageController::getTest()}} отображается так, как оно хранится в БД. Я хочу вызвать метод LandingPageController getTest на мой взгляд.

Пожалуйста, предложите мне быстрое решение для этого.

Контроллер целевой страницы

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

Ответы [ 5 ]

0 голосов
/ 15 мая 2018

Получил решение, достигни функциональности с помощью «коротких кодов».

Найден очень хороший учебник по шорткодам laravel как WordPress

0 голосов
/ 14 мая 2018

Взгляните на Помощник . Вы можете вызвать вспомогательную функцию для отображения вашего текста или HTML

0 голосов
/ 14 мая 2018

просто сделайте функцию статической

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

0 голосов
/ 14 мая 2018

Вы можете оценить строку как код php, используя функцию eval()

eval - Оценить строку как код PHP

Но это очень не рекомендуется .

Конструкция языка eval () очень опасна, поскольку позволяет выполнять произвольный код PHP.Таким образом, его использование не рекомендуется.Если вы тщательно проверили, что нет другого выбора, кроме как использовать эту конструкцию, обратите особое внимание на то, чтобы не передавать в нее данные, предоставленные пользователем, без надлежащей проверки их заранее.

Вы можете использовать универсальную строку, {test} например, при сохранении содержимого в хранилище.

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

Затем, когда вам нужно отобразить фактическое содержимое, вы можете просто заменить общую строку на реальное значение.У вас будет эта строка в вашем блейд-файле:

{{ str_replace('{str}', "Hello World", $content) }}
0 голосов
/ 14 мая 2018

Используйте пространство имен для этого контроллера в вашем блейд-файле.пример

namespace App\Http\Controllers\LandingPageController;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...