如何动态加载/渲染Laravel Collective表单?

时间:2019-02-23 16:02:57

标签: laravel laravel-blade laravelcollective

我正在为内部开发团队设计一个小型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 :(得分:0)

您可以使用render()方法呈现视图的HTML。因此,您可以更新为:

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

现在$data['form']将呈现HTML,如果您将{!! $data['html'] !!}传递到主视图,则可以使用$data在刀片中使用HTML。