Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scope parameter no longer works with Grid content #2250

Closed
mikemartin opened this issue Aug 19, 2020 · 2 comments
Closed

Scope parameter no longer works with Grid content #2250

mikemartin opened this issue Aug 19, 2020 · 2 comments

Comments

@mikemartin
Copy link

Bug Description

I'm in the process of migrating V2 site where I scoped grid content a lot, but when I use the scope parameter on grid content in V3, it throws a must be of the type array error.

How to Reproduce

Grid content:

grid:
  -
    text: test
    text2: test
  -
    text: test
    text2: test

Tag:

{{ grid scope="row" }}
  <h3 class="h3">{{ text }}</h3>
{{ /grid }}

Extra Detail

Screen Shot 2020-08-19 at 10 26 31 am

[previous exception] [object] (TypeError(code: 0): Argument 1 passed to Illuminate\\Support\\Arr::isAssoc() must be of the type array, object given, called in /Users/mike/Sites/rezzz/vendor/statamic/cms/src/Support/Arr.php on line 45 at /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Support/Arr.php:385)
[stacktrace]
#0 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/Support/Arr.php(45): Illuminate\\Support\\Arr::isAssoc(Object(Illuminate\\Support\\Collection))
#1 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/Modifiers/CoreModifiers.php(1602): Statamic\\Support\\Arr::addScope(Object(Illuminate\\Support\\Collection), 'row')
#2 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/Modifiers/Modify.php(182): Statamic\\Modifiers\\CoreModifiers->scope(Object(Illuminate\\Support\\Collection), Array, Array)
#3 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/Modifiers/Modify.php(146): Statamic\\Modifiers\\Modify->runModifier('scope', Array)
#4 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/Modifiers/Modify.php(124): Statamic\\Modifiers\\Modify->modify('scope', Array)
#5 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/View/Antlers/Parser.php(1394): Statamic\\Modifiers\\Modify->__call('scope', Array)
#6 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/View/Antlers/Parser.php(595): Statamic\\View\\Antlers\\Parser->runModifier('scope', Object(Statamic\\Fields\\Value), Array, Array)
#7 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/View/Antlers/Parser.php(178): Statamic\\View\\Antlers\\Parser->parseCallbackTags('<div class=\"rel...', Array)
#8 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/View/Antlers/Parser.php(131): Statamic\\View\\Antlers\\Parser->parse('{{ partial:home...', Array)
#9 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/View/Antlers/Engine.php(89): Statamic\\View\\Antlers\\Parser->parseView('/Users/mike/Sit...', '{{ partial:home...', Array)
#10 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/View/View.php(139): Statamic\\View\\Antlers\\Engine->get('/Users/mike/Sit...', Array)
#11 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/View/View.php(122): Illuminate\\View\\View->getContents()
#12 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/View/View.php(91): Illuminate\\View\\View->renderContents()
#13 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/View/View.php(74): Illuminate\\View\\View->render()
#14 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/Http/Responses/DataResponse.php(144): Statamic\\View\\View->render()
#15 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/Http/Responses/DataResponse.php(45): Statamic\\Http\\Responses\\DataResponse->contents()
#16 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/Structures/Page.php(289): Statamic\\Http\\Responses\\DataResponse->toResponse(Object(Illuminate\\Http\\Request))
#17 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Routing/Router.php(744): Statamic\\Structures\\Page->toResponse(Object(Illuminate\\Http\\Request))
#18 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Routing/Router.php(731): Illuminate\\Routing\\Router::toResponse(Object(Illuminate\\Http\\Request), Object(Statamic\\Structures\\Page))
#19 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Routing/Router.php(685): Illuminate\\Routing\\Router->prepareResponse(Object(Illuminate\\Http\\Request), Object(Statamic\\Structures\\Page))
#20 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#21 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/StaticCaching/Middleware/Cache.php(29): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#22 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Statamic\\StaticCaching\\Middleware\\Cache->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#23 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/Http/Middleware/Localize.php(22): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#24 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Statamic\\Http\\Middleware\\Localize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#25 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#26 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#27 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(76): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#28 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#29 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#30 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#31 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#32 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(62): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store), Object(Closure))
#33 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#34 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#35 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#36 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(66): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#37 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#38 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/StaticCaching/Middleware/Retrieve.php(34): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#39 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Statamic\\StaticCaching\\Middleware\\Retrieve->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#40 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#41 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Routing/Router.php(687): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#42 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Routing/Router.php(662): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#43 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Routing/Router.php(628): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#44 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Routing/Router.php(617): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#45 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#46 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#47 /Users/mike/Sites/rezzz/vendor/statamic/cms/src/Http/Middleware/PoweredByHeader.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#48 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Statamic\\Http\\Middleware\\PoweredByHeader->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#49 /Users/mike/Sites/rezzz/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(58): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#50 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#51 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#52 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#53 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#54 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#55 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#56 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#57 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#58 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#59 /Users/mike/Sites/rezzz/vendor/fruitcake/laravel-cors/src/HandleCors.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#60 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#61 /Users/mike/Sites/rezzz/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#62 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#63 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#64 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(140): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#65 /Users/mike/Sites/rezzz/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(109): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#66 /Users/mike/Sites/rezzz/public/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#67 /Users/mike/.composer/vendor/laravel/valet/server.php(191): require('/Users/mike/Sit...')
#68 {main}
"} 

Environment

Statamic 3.0.0-beta.45 Pro
Laravel 7.25.0
PHP 7.4.9
statamic/migrator dev-master

@mikemartin
Copy link
Author

mikemartin commented Aug 19, 2020

Might be related. Also experiencing an issue with using the length modifier on grid content.

<div class="grid grid-{{ products|length }}up">
  {{ products }}...{{ /products }}
</div>

Error:

Method Illuminate\Support\Collection::__toString() must return a string value

@mikemartin
Copy link
Author

mikemartin commented Aug 25, 2020

@jasonvarga It seems like the solution here is that I no longer need to scope but if I really need to I can use a foreach.
Is that right?

V3 (should work like magic):

{{ grid }}
  <h3 class="h3">{{ summary }}</h3>
{{ /grid }}

V3 (if you must scope):

{{ foreach:grid as="row" }}
  <h3 class="h3">{{ row:summary }}</h3>
{{ /foreach:grid }}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant