在 Laravel 中删除渲染视图

Posted

技术标签:

【中文标题】在 Laravel 中删除渲染视图【英文标题】:Remove render view in Laravel 【发布时间】:2022-01-09 14:23:12 【问题描述】:

我正在使用 Laravel 并使用 Rander 视图在 Bootstrap 模式中查看一些数据。

我在点击时打开模式并在其中获取渲染数据。

这是我在控制器中随机处理数据的方式:

$view = \View::make('list.modal-body', ['list'=>$list]);   
$message = $view->render();
return response()->json([
   ajax_request_return_data'          => $message
]);

我收到了$message,这是对我的 Ajax 请求的 html 响应。 然后我在模态体上渲染它。

这是我随机处理的 HTML 数据:

<div class="table-responsive">
<table>
    <thead>
            <tr>
            </tr>
     </thead>
     <tbody>
        @foreach($list as $single_detail)
        <tr>
            <td> $single_detail->detail_name </td>
        </tr>
        @endforeach
     </tbody>
</table>
</div>

这是我正在使用的 AJAX 函数:

$.ajax(
    type : 'POST',
    url : URL-OF-AJAX', 
    data :  'related_data' : ralate_data_detail , 
    success: function(data) 
        $('.CLASS_OF_Modal_Body').append(data.ajax_request_return_data)        
        $('#modal_id').modal('toggle');
    ,
    error : function(XMLHttpRequest, textStatus, errorThrown) 
    
    
);

问题

问题是当我渲染数据时,旧的渲染数据会在表格中显示新数据,并且每次打开该模式时它都会不断添加

我尝试过哪些可能的解决方案?

我尝试在添加新数据之前传递空数据,但仍会在模态表中显示旧数据。

我也尝试过删除视图缓存,但旧数据仍然出现在包含新数据的表中。

请帮我解决这个问题,我如何每次都在表中随机抽取 FRESH 数据并删除旧的渲染数据。

【问题讨论】:

尝试使用 html 而不是 append $('.CLASS_OF_Modal_Body').html(data.ajax_request_return_data) @JohnLobo 嘿先生.. 你解决它.. 我知道问题不在我的控制器或 ajax 请求中.. 它在视图附加中。谢谢楼主 【参考方案1】:

而不是使用追加使用html方法。

替换

 $('.CLASS_OF_Modal_Body').append(data.ajax_request_return_data) 

  $('.CLASS_OF_Modal_Body').html(data.ajax_request_return_data) 

参考:

https://api.jquery.com/html/

https://api.jquery.com/append/

【讨论】:

以上是关于在 Laravel 中删除渲染视图的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 8 Jetstream Inertia 没有渲染视图组件

如何在 Laravel 中渲染网页和移动视图

如何使用 if 路由条件在 2 个单独的视图函数中使用相同的渲染? (Laravel/Livewire)

Laravel - 大量使用 Blade 渲染视图的访问器(修改器)

Laravel 布局问题

Laravel 刀片模板不使用 slug 渲染