Skip to content

transformer for Responding With A Collection Of Items #442

@donnigunawan

Description

@donnigunawan

Hi, I have no idea on how to use transformer class for Responding With A Collection Of Items. I tried another response and it works but now the Responding With A Collection Of Items.
Here is my code, I select all group from database :

in UserController.php :
class UserController extends BaseController
{
public function show()
{
//use ControllerTrait;
$group = Sentry::findGroupById(1);

    return $this->response->collection($group, new GroupTransformer);
}

}

the transformer class is in app/transformer/GroupTransormer.php :

use League\Fractal\TransformerAbstract;

class GroupTransformer extends TransformerAbstract
{

/**
 * Turn this item object into a generic array
 *
 * @return array
 */
public function transform(User $user)
{
    return [
        'id'            => (int) $user->id,
        'name'          => $user->name,
        'permissions'         => $user->permissions,
    ];
}

}

Then when I access, I got this error :

ErrorException thrown with message "Argument 1 passed to Dingo\Api\Http\ResponseFactory::collection() must be an instance of Illuminate\Support\Collection, instance of Cartalyst\Sentry\Groups\Eloquent\Group given, called in /var/www/my-app/app/controllers/UserController.php on line 12 and defined"

Stacktrace:
#20 ErrorException in /var/www/my-app/vendor/dingo/api/src/Http/ResponseFactory.php:75
#19 Illuminate\Exception\Handler:handleError in /var/www/my-app/vendor/dingo/api/src/Http/ResponseFactory.php:75
#18 Dingo\Api\Http\ResponseFactory:collection in /var/www/my-app/app/controllers/UserController.php:12
#17 UserController:show in <#unknown>:0
#16 call_user_func_array in /var/www/my-app/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:231
#15 Illuminate\Routing\Controller:callAction in /var/www/my-app/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:93
#14 Illuminate\Routing\ControllerDispatcher:call in /var/www/my-app/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:62
#13 Illuminate\Routing\ControllerDispatcher:dispatch in /var/www/my-app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:967
#12 Illuminate\Routing\Router:Illuminate\Routing{closure} in <#unknown>:0
#11 call_user_func_array in /var/www/my-app/vendor/laravel/framework/src/Illuminate/Routing/Route.php:109
#10 Illuminate\Routing\Route:run in /var/www/my-app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:1033
#9 Illuminate\Routing\Router:dispatchToRoute in /var/www/my-app/vendor/laravel/framework/src/Illuminate/Routing/Router.php:1001
#8 Illuminate\Routing\Router:dispatch in /var/www/my-app/vendor/dingo/api/src/Routing/Router.php:205
#7 Dingo\Api\Routing\Router:dispatch in /var/www/my-app/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:775
#6 Illuminate\Foundation\Application:dispatch in /var/www/my-app/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:745
#5 Illuminate\Foundation\Application:handle in /var/www/my-app/vendor/laravel/framework/src/Illuminate/Session/Middleware.php:72
#4 Illuminate\Session\Middleware:handle in /var/www/my-app/vendor/laravel/framework/src/Illuminate/Cookie/Queue.php:47
#3 Illuminate\Cookie\Queue:handle in /var/www/my-app/vendor/laravel/framework/src/Illuminate/Cookie/Guard.php:51
#2 Illuminate\Cookie\Guard:handle in /var/www/my-app/vendor/stack/builder/src/Stack/StackedHttpKernel.php:23
#1 Stack\StackedHttpKernel:handle in /var/www/my-app/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:641
#0 Illuminate\Foundation\Application:run in /var/www/my-app/public/index.php:49

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions