donglinxi1467 2014-05-21 14:16
浏览 71

ErrorException,array_merge():当我调用Ajax时,参数#2不是数组

In my users page, I use a div with two tabs "Products" and "Followers", in the second tab, I've a pagination for the list of followers. Not return to the tab "Products" when I try the pagination, I user a call Ajax. But when I try to run it, I have a error 500, and the response of the get is :

{"error":{"type":"ErrorException","message":"array_merge(): Argument #2 is not an
array","file":"\/Users\/utilisateur\/Desktop\/mamp\/ptf-l4\/vendor\/laravel\/framework\
/src\/Illuminate\/View\/Environment.php","line":117}} 

I don't know why and I don't know how to find a solution.

This is my controller :

public function show($id){

    // récupère les données de l'user et les produis qu'il partage
    $show = $this->api->show($id);

    // décode le json pour qu'il se réaffiche en array pour pouvoir l'exploiter
    $json = json_decode($show->getContent());

    $json->followed = User::userFollowedPaginate($id);

    LaravelMixpanel::identify(Auth::user()->mixpanel_id);
    LaravelMixpanel::track('User show view');

    if(Request::ajax())
    {
        $html = View::make('users.show', $json)->render();

        return Response::json(['html' => $html]);
    }

    return View::make('users.show')
                ->with('user', $json);
}

My API/Controller :

public function show($id){

    // récupère donnée de l'user et les produits qu'il échange
    $data = User::with(array('products' => function($query){
                                                $query->whereNull('shared_at');
                                                $query->whereNull('deleted_at');
                                            }))->findOrFail($id)->toArray();

    // récupère le nb de produits qu'il échange en ce moment
    $data['nbShareCurrently'] = Product::where('user_id', $id)->whereNull('shared_at')->whereNull('deleted_at')->count();

    // récupère le nb de produits qu'il a échangé depuis le début
    $data['nbShared'] = Product::where('user_id', $id)->whereNotNull('shared_at')->count();

    return Response::json($data, 200);
}

My JS :

function callAjaxUser(url) {

    $.ajax ({
        type: "GET",
        url: url ,
        success: function() {
            console.log('Success ');   
        },
        error: function() {
            console.log('Error '); 
        }
    });
}



$(document).ready(function(){
    $('body').on('click', ' .pagination a ', function(event){
        event.preventDefault();
        var url=$(this).attr('href');
        callAjaxUser(url);
    });
});

And my view :

@extends('default')
@section('title')
    Fiche de {{ $user->name }}
@stop
@section('contenu')
    <section class="panel col-lg-8 col-sm-8 m-t-large">
        <header class="panel-heading m-l-n m-r-n">
            <ul class="nav nav-tabs pull-right">
                <li class="active"><a href="#product" data-toggle="tab"><i class="icon-list icon-large text-default"></i>Mes produits en cours de partage</a></li>
                <li><a href="#follow" data-toggle="tab"><i class="icon-group icon-large text-default"></i>Mes abonnés</a></li>
            </ul>
            <span class="hidden-sm">Fiche technique du frigo</span>
        </header>
        <div class="panel-body">
            <div class="tab-content">              
                <div class="tab-pane active" id="product">
                    <div class="col-lg-3">
                        {{-- dd($user) --}}
                        <h4>{{{ $user->name }}}</h4>
                        @if($user->photo && File::exists(public_path().'/uploads/photos/users/'.e($user->photo)))  
                            {{ HTML::image('uploads/photos/users/'.e($user->photo), e($user->name)) }}
                        @else
                             {{ HTML::image('template/images/avatar.jpg', e($user->name)) }}
                        @endif
                        @if($user->id!=Auth::user()->id)
                             @if(DB::table('user_followers')->where('user_followed', $user->id)->where('user_following', Auth::user()->id)->count()==0)
                                {{ HTML::decode(HTML::linkAction('UserFollowersController@follow', '<i class="icon-heart">S\'abonner</i>', array('id' => $user->id), array('class' => 'btn btn-info m-t-large m-b-small'))) }}
                            @else
                                {{ HTML::decode(HTML::linkAction('UserFollowersController@unfollow', '<i class="icon-heart">Se désabonner</i>', array('id' => $user->id), array('class' => 'btn btn-danger m-t-large m-b-small '))) }}
                            @endif
                        @endif
                    </div>
                    <div class="col-lg-9">
                        <h4>Le frigo contient en ce moment :</h4>
                            <ul class="list-unstyled">
                                @foreach($user->products as $product)
                                <li class="list-group-item bg m-b-small">
                                    <div class="media">
                                        @if(e($product->photo) && File::exists(public_path().'/uploads/photos/products/'.e($product->photo)))
                                            <span class="pull-left img-product"> 
                                                <a href="{{ URL::action('ProductsController@show', $product->id) }}">
                                                    {{ HTML::image('uploads/photos/products/'.e($product->photo), e($product->title), array('class' => 'img-rounded')) }}
                                                 </a>
                                            </span>
                                        @endif
                                        <div class="media-body">
                                            <div><a href="{{ URL::action('ProductsController@show', $product->id) }}" class="h4">{{{ $product->title }}}</a></div>
                                            <p>{{{ $product->description }}}</p>
                                            <p class="pull-left">Quantité :  <span class="label label-info">{{{ $product->quantity }}}</span></p>
                                            <p class="pull-right">Prix : <span class="badge bg-danger">{{{ $product->price }}} €</span></p>
                                        </div>
                                    </div>
                                </li>
                            @endforeach
                        </ul>
                        <div class="pagination">
                            {{-- $users->products->links() --}}
                        </div>
                    </div>
                </div>
                <div class="tab-pane" id="follow">
                    <div class="row m-b-large">
                        @if($user->followed!=NULL)
                            @foreach($user->followed as $user_followed)
                                <div class="panel col-lg-2 m-l-large m-t-large ">
                                    <div class="col-lg-8 m-b-n-small col-md-offset-2 m-t-large text-center">
                                        @if($user_followed->photo && File::exists(public_path().'/uploads/photos/users/'.e($user_followed->photo)))
                                            {{ HTML::image('uploads/photos/users/'.e($user_followed->photo), e($user_followed->name), array ( 'class' => 'img-circle')) }}
                                        @else
                                            {{ HTML::image('template/images/avatar.jpg', e($user_followed->name), array ( 'class' => 'img-circle')) }}
                                        @endif
                                        <h3>{{{ $user_followed->name }}}</h3>
                                    </div>
                                    <div class="col-lg-10 m-b-small center ">
                                        @if(DB::table('user_followers')->where('user_followed', $user_followed->id)->where('user_following', Auth::user()->id)->count()==0)
                                            {{ HTML::decode(HTML::linkAction('UserFollowersController@follow', '<i class="icon-heart">S\'abonner</i>', array('id' => $user_followed->id), array('class' => 'btn btn-info btn-group-justified m-t-large m-b-small'))) }}
                                        @else
                                            {{ HTML::decode(HTML::linkAction('UserFollowersController@unfollow', '<i class="icon-heart">Se désabonner</i>', array('id' => $user_followed->id), array('class' => 'btn btn-danger btn-group-justified m-t-large m-b-small '))) }}
                                        @endif
                                    </div>
                                </div>
                            @endforeach
                        @else
                            <div class="panel col-lg-8 col-lg-offset-2 m-t-large">
                                <h4> Tu ne suis actuellement personne </h4>
                            </div>
                        @endif
                    </div>    
                    <div class="col-lg-12">
                        {{ $user->followed->links() }}
                    </div>
                </div>
            </div>
        </div>
    </section>
@stop
@section('js')
    {{ Basset::show('usersPaginate.js') }}
@endsection
  • 写回答

1条回答 默认 最新

  • doudu2515 2015-06-30 15:53
    关注

    I stumbled upon this question because it is the first Google search result for laravel ErrorException, array_merge(): Argument #2 is not an array.

    Even though the question is a year old, it is still relevant, because this happened to me in Laravel 5.0 today.

    Without taking the time to digest all of your code, the problem is likely the same in your case as it was in mine: you are passing a non-array as the second argument to view::make() (whether intentionally or not) when you must pass an array.

    The problem line is this one, in your controller:

    $html = View::make('users.show', $json)->render();

    Given that $json appears to be an object, the fix is simple:

    $html = View::make('users.show', compact('json'))->render();

    Hopefully, this answer will help somebody else in the future.

    评论

报告相同问题?

悬赏问题

  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多