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

Image/Video field’s Upload Location setting has an invalid subpath #276

Closed
florentineprinzessinzusachsen opened this issue Jun 4, 2019 · 4 comments

Comments

@florentineprinzessinzusachsen

Description

Hi @engram-design

Might be related to #272

I was wondering whether my issues are a misconfiguration or if there might be problem with refererring to a supertable within asset subpaths.

I have two issues.

1: see here: craftcms/cms#3690
It happens when I duplicate an entry which contains an asset within a supertable, nested in a matrix. This asset has a subpath leading to a field in another supertable. I found out that that the content model isn't being populated entirely before path validation takes place and thus saving fails.

2: happens when resaving entries within a queued job. (For example when making changes in a section) See the error message from the queue.log below. It's related to the same field as issue #1.

Maybe you have any idea on how to debug these or what I can change in order to make this work again as it did in Craft 2? I am using the owner.owner in order to point to the parent entry.

Thank you!

Next craft\errors\InvalidSubpathException: The Image/Video field’s Upload Location setting has an invalid subpath (“{owner.owner.metaInformation.one.brandsNew.one.slug}”). in /Users/wojteckir2/www/haebmau.space/vendor/craftcms/cms/src/fields/Assets.php:744 Stack trace: #0 /Users/wojteckir2/www/haebmau.space/vendor/craftcms/cms/src/fields/Assets.php(425): craft\fields\Assets->_determineUploadFolderId(Object(verbb\supertable\elements\SuperTableBlockElement)) #1 /Users/wojteckir2/www/haebmau.space/vendor/craftcms/cms/src/base/Element.php(1883): craft\fields\Assets->afterElementSave(Object(verbb\supertable\elements\SuperTableBlockElement), false) #2 /Users/wojteckir2/www/haebmau.space/vendor/verbb/super-table/src/elements/SuperTableBlockElement.php(331): craft\base\Element->afterSave(false) #3 /Users/wojteckir2/www/haebmau.space/vendor/craftcms/cms/src/services/Elements.php(516): verbb\supertable\elements\SuperTableBlockElement->afterSave(false) #4 /Users/wojteckir2/www/haebmau.space/vendor/verbb/super-table/src/services/SuperTableService.php(812): craft\services\Elements->saveElement(Object(verbb\supertable\elements\SuperTableBlockElement), false, true) #5 /Users/wojteckir2/www/haebmau.space/vendor/verbb/super-table/src/fields/SuperTableField.php(756): verbb\supertable\services\SuperTableService->saveField(Object(verbb\supertable\fields\SuperTableField), Object(craft\elements\MatrixBlock)) #6 /Users/wojteckir2/www/haebmau.space/vendor/craftcms/cms/src/base/Element.php(1883): verbb\supertable\fields\SuperTableField->afterElementSave(Object(craft\elements\MatrixBlock), false) #7 /Users/wojteckir2/www/haebmau.space/vendor/craftcms/cms/src/elements/MatrixBlock.php(399): craft\base\Element->afterSave(false) #8 /Users/wojteckir2/www/haebmau.space/vendor/craftcms/cms/src/services/Elements.php(516): craft\elements\MatrixBlock->afterSave(false) #9 /Users/wojteckir2/www/haebmau.space/vendor/craftcms/cms/src/services/Matrix.php(782): craft\services\Elements->saveElement(Object(craft\elements\MatrixBlock), false, true) #10 /Users/wojteckir2/www/haebmau.space/vendor/craftcms/cms/src/fields/Matrix.php(766): craft\services\Matrix->saveField(Object(craft\fields\Matrix), Object(craft\elements\Entry)) #11 /Users/wojteckir2/www/haebmau.space/vendor/craftcms/cms/src/base/Element.php(1883): craft\fields\Matrix->afterElementSave(Object(craft\elements\Entry), false) #12 /Users/wojteckir2/www/haebmau.space/vendor/craftcms/cms/src/elements/Entry.php(1162): craft\base\Element->afterSave(false) #13 /Users/wojteckir2/www/haebmau.space/vendor/craftcms/cms/src/services/Elements.php(516): craft\elements\Entry->afterSave(false) #14 /Users/wojteckir2/www/haebmau.space/vendor/craftcms/cms/src/queue/jobs/ResaveElements.php(74): craft\services\Elements->saveElement(Object(craft\elements\Entry)) #15 /Users/wojteckir2/www/haebmau.space/vendor/yiisoft/yii2-queue/src/Queue.php(214): craft\queue\jobs\ResaveElements->execute(Object(craft\queue\Queue)) #16 /Users/wojteckir2/www/haebmau.space/vendor/yiisoft/yii2-queue/src/cli/Queue.php(162): yii\queue\Queue->handleMessage('2', 'O:31:"craft\\que...', '6000', '1') #17 /Users/wojteckir2/www/haebmau.space/vendor/yiisoft/yii2-queue/src/cli/Command.php(145): yii\queue\cli\Queue->execute('2', 'O:31:"craft\\que...', '6000', '1',

Additional info

  • Plugin version: 2.1.20
  • Craft version: 3.1.28
@engram-design
Copy link
Member

Sounds like you have a complex field setup! Just to confirm, you have:

Matrix > Super Table > Asset (which is where you've set the subpath - owner.owner.metaInformation.one.brandsNew.one.slug)

What is metaInformation and brandsNew?

@florentineprinzessinzusachsen
Copy link
Author

florentineprinzessinzusachsen commented Jun 4, 2019

Yes it is indeed a very complex setup. Actually my previous issue/question was related because I would like to demigrate the metaInformation supertable into a standard matrix field to make things faster and more straightforward. So far I haven't found a way to programmatically/reliably do that.

Anyways, yes:
Matrix > Supertable > Asset has set it's subpath to {owner.owner.fieldtype:supertable.fieldtype:pages.slug}

Thanks again!!

@engram-design
Copy link
Member

Sorry for not responding sooner - I'm wondering if you could send through a screenshot (or two) of your field setup? I'm still not 100% sure on your field structure - what fields are what, etc.

@engram-design
Copy link
Member

Closing due to inactivity.

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

2 participants