View渲染功能出现问题

时间:2019-07-13 12:57:22

标签: php laravel laravel-5 laravel-blade

我是laravel的新手,尽管我似乎无法解决以下问题,但我对laravel的工作情况了解得很好。

在我的应用程序中,我有一个产品视图,该视图显示具有许多字段的表单。该视图的一部分显示一张表格,其中包含与该产品相关的变体。用户可以向产品添加新的变体,但是单击显示模式的按钮。完成后,模态将通过Ajax保存新的变量信息。将数据保存到dB后,将在表行中返回一个json对象,其中包含成功消息和新创建的变体的HTML字符串,该行将追加到变体表中。

一切正常。我遇到的问题是,返回的HTML字符串正在与blade语句一起输出,而未转换为与其关联或传递的值。

在我的控制器课程中


$variant = Variant::create(
    ‘barcode’ => ‘abc123’,
    ‘size’ => ‘SM’,
    ‘colour’ => ‘Red’,
    ‘qty’ => ‘125’);

$html = view(‘variantTableRow’)->with(‘variant’, $variant)->render();

Return response()->json([
     ’status’ => true,
     ‘html’ => $html
]);

In variantTableRow file

<tr>
    <td>{{ $variant->barcode }}</td>
    <td>{{ $variant->size }}</td>
    <td>{{ $variant->colour }}</td>
    <td>{{ $variant->qty }}</td>
</tr>

Output in the main view file

<tr>
    <td>{{ $variant->barcode }}</td>
    <td>{{ $variant->size }}</td>
    <td>{{ $variant->colour }}</td>
    <td>{{ $variant->qty }}</td>
</tr>

很抱歉,冗长的解释,但是如您所见,render函数没有将数据传递到视图中。我一直在挠挠为什么不起作用。

谢谢您的帮助。


解决了它。抱歉,伙计们,我似乎忘记了在文件名中添加“ .blade”,并且在进行三重检查后,在发布之前的所有操作我都错过了查看文件名的机会,这样的新手错误。

1 个答案:

答案 0 :(得分:1)

您应该写

        'application-index' => [
            'type'  =>  Segment::class,
            'options' =>  [
                'route' =>  '/application/index[/][:action][/]',
                'defaults'  =>  [
                    '__NAMESPACE__' =>  'Application\Controller',
                    'controller'  =>  IndexController::class,
                    'action'      =>  'index'
                ],
            ]
        ],

代替

checkbox