我是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”,并且在进行三重检查后,在发布之前的所有操作我都错过了查看文件名的机会,这样的新手错误。
答案 0 :(得分:1)
您应该写
'application-index' => [
'type' => Segment::class,
'options' => [
'route' => '/application/index[/][:action][/]',
'defaults' => [
'__NAMESPACE__' => 'Application\Controller',
'controller' => IndexController::class,
'action' => 'index'
],
]
],
代替
checkbox