javascript - Controller 中的 Foreach 仅返回一个输出 Laravel 和 Ajax

标签 javascript jquery ajax laravel laravel-5

我正在尝试使用 Ajax 显示数据库中的名称,并且在 Controller 中使用 foreach 循环,但它只返回一个名称而不是两个(它无法正确循环)。我已经看到了一些答案,人们建议在 View 中使用 foreach 但就我而言,我在 View 中使用 Ajax 如何在 Ajax 中使用 foreach 或者有什么方法可以显示所有名称?

我尝试过使用这些,但它返回一个名称而不是两个。

$data = [];
$data[] = $review->user->name; 

Controller

  $products = Product::where('id','=',$id)->with('reviews.user')->get();
        foreach ($products as $product)
        {
            foreach ($product->reviews as $review){
                $data =  $review->user->name;
                dd($data); //This returns one name
            }
        }

Ajax

 <script >
 function userRatingname() {
    $.ajax({
        type: "GET",
        url: '{{route('userRating.name ', $id)}}',
        success: function(data) {
            $('#userRatingname').html('<div>' + data + '</div>');

        }
    });

}
userRatingname(); 
</script>

最佳答案

您一次又一次地覆盖 $data 的值,因此它将返回最后一个用户名。

您需要将 $data = []; 置于循环之外。并在循环内使用 $data[] = $review->user->name; :

$products = Product::where('id','=',$id)->with('reviews.user')->get();
$data = array(); // defined the $data here out of loop
foreach ($products as $product)
{
   foreach ($product->reviews as $review){
       $data []= $review->user->name; // push the username to $data   
   }
}
// Or you can use whereIn for User:
$data = User::whereIn('id', ProductReview::where('product_id',$id)->pluck('user_id'))->pluck('name')->toArray();

return response()->json(['code' => 200, 'data' => $data]);

更改你的ajax代码:

function userRatingname() {
    $.ajax({
        type: "GET",
        url: '{{route('userRating.name ', $id)}}',
        success: function(data) {
            var html = '';
            data['data'].forEach(function(name) {
                html += '<div>' + name + '</div>'
            });
            $('#userRatingname').html(html);
        }
    });

关于javascript - Controller 中的 Foreach 仅返回一个输出 Laravel 和 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60828924/

相关文章:

javascript - 计时器 JavaScript 上的 slider ?

javascript - 运行 gulp/nodemon 时设置 --max_old_space_size

javascript - 更改将鼠标悬停在 session 时间按钮上的工具提示内容

javascript - jQuery $(document).ready 和 UpdatePanels?

php 用户使用或不使用 AJAX 注销

ajax - 检索 Facebook 粉丝姓名

javascript - 如何使用时刻格式格式化时间段?

javascript - MVC 中的 Ajax POST

javascript - 使用键和清理解析嵌套字符串 - javascript

javascript - 使用部分是动态更改 RoR 中内容的最佳方式吗?