Как динамически загружать / отображать форму Laravel Collective? - PullRequest
0 голосов
/ 23 февраля 2019

Я разрабатываю небольшую CMS для собственной команды разработчиков, где у всех есть опыт работы с laravel.

Для CMS требуется небольшая функция, к которой перечисленные службы могут иметь прикрепленную форму предложения.Вместо того, чтобы создавать совершенно отдельный модуль для добавления элементов и других элементов по отдельности, я хотел, чтобы система была добавлена ​​так, чтобы разработчик добавил код коллективной формы laravel, который мы храним в базе данных.

При извлечении мырендеринг на стороне сервера форм.

Вот моя реализация

Контроллер

    public function show($id)
{
    $data['page'] = Service::where('slug', $id)->first();
    if ($data['page']) {
     ....
     $data['form'] = $data['page']->quoteform()->first();

    ....

И в представлении

 {!! $form['html'] !!}

Но это определенно выиграно 'Это не помогло, поэтому я попробовал этот способ рендеринга коллективной формы

 $data['form'] = View::make('website.includes.render-form',['form'=>$data['page']->quoteform()->first()]);

Но я не уверен, должно ли это работать, поскольку я не мог заставить его работать.

Ожиданиек решению, если вообще подход, который я выбрал, возможен, если да или может быть сделан, хотел бы узнать больше об этом.

TIA

Редактировать 1:

Я использовал следующую команду Blade::compileString('string here'), которая в некоторой степени помогла.

, где я получаю следующий результат

enter image description here

1 Ответ

0 голосов
/ 23 февраля 2019

Вы можете отобразить HTML представления, используя метод render().Таким образом, вы можете обновить это до:

$data['form'] = View::make('website.includes.render-form',
                    ['form' => $data['page']->quoteform()->first()]
                )->render();

Теперь $data['form'] будет отображать HTML, который вы можете использовать в блейде, используя {!! $data['html'] !!}, если вы передаете $data на ваш основной вид.

...