首页 > 解决方案 > Laravel:附加到表时显示为未定义的变量

问题描述

我通过 AJAX GET 调用从数据库中检索数据,获得成功响应显示为未定义:

这是我的控制器方法:

public function index()
    {
        $reviews = Review::all();
		
		return response()->json([
		
            'success' => 'Todas las opiniones recogidas',
			'reviews' => $reviews,
        ]);
    }

这是我在其中附加结果的 JQuery 代码,我很确定错误在这里:

$.ajax({

                    async: true,
                    url: '/reviews',
                    type: 'GET',
                    dataType: 'JSON',
			 
                    success: function (data) { 
							
				        $('.row[data-link=' + linked_entry + ']').remove();
					
					    $.each(data, function (index, item) {
					
					        var reviews_row = '<tr class="row" data-link="reviews">';
                            reviews_row += '<td>' + data.body + '</td>';
                            reviews_row += '<td>' + data.author + '</td>';
                            reviews_row += '<td>' + data.site + '</td>';
                            reviews_row += '<td style="text-align:center;"><input type="checkbox" name="isVisible" '+(data.isVisible ? 'checked' : '')+'></td>';
                            reviews_row += '</tr>';
	
					        $('.entry_table_container[data-link=' + linked_entry + ']').append(reviews_row);
                        });
								
			              
                    },
			
			        error: function (data){
                        var errors = data.responseJSON;
                        console.log(errors);
                    }
				
		        });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

标签: javascriptphpjquerylaravel

解决方案


改变这个:

$.each(data, function (index, item) {

对此:

$.each(data.reviews, function (index, item) {

接着:

item.body、item.author 等作为提到的其他贡献者之一在您的循环中


推荐阅读