Simplify your stack and build anything. Or everything.
Build tomorrow’s web with a modern solution you truly own.
Code-based nature means you can build on top of it to power anything.
It’s time to take back your content infrastructure.

InvalidFieldRelationship: Field Item has invalid relationship 'Portfolio'.

default discord avatar
taun21602 years ago
3
[04:04:45] INFO (payload): Connected to Mongo server successfully!
[04:04:45] INFO (payload): Starting Payload...
unhandledRejection InvalidFieldRelationship: Field Item has invalid relationship 'Portfolio'.
    at new ExtendableError (C:\git\2160\2160-Lodge-Bukela-2\node_modules\payload\src\errors\APIError.ts:26:11)
    at new APIError (C:\git\2160\2160-Lodge-Bukela-2\node_modules\payload\src\errors\APIError.ts:43:5)
    at new InvalidFieldRelationship (C:\git\2160\2160-Lodge-Bukela-2\node_modules\payload\src\errors\InvalidFieldRelationship.ts:6:5)
    at C:\git\2160\2160-Lodge-Bukela-2\node_modules\payload\src\fields\config\sanitize.ts:35:17
    at Array.forEach (<anonymous>)
    at C:\git\2160\2160-Lodge-Bukela-2\node_modules\payload\src\fields\config\sanitize.ts:33:21
    at Array.map (<anonymous>)
    at sanitizeFields (C:\git\2160\2160-Lodge-Bukela-2\node_modules\payload\src\fields\config\sanitize.ts:12:17)
    at C:\git\2160\2160-Lodge-Bukela-2\node_modules\payload\src\fields\config\sanitize.ts:74:59
    at Array.map (<anonymous>) {
  status: 500,
  data: null,
  isPublic: false,
  isOperational: true
} 


Any ideas?



//Portfolio.ts



import { CollectionConfig } from 'payload/types';

const Portfolio: CollectionConfig = {
  slug: 'portfolio',
  access: {
    create: (): boolean => true,
    read: (): boolean => true,
    update: (): boolean => true,
    delete: (): boolean => true,
  },

  fields: [
    {
      name: 'title',
      label: 'Title',
      type: 'text',
      required: true,
    },
    {
      name: 'subtitle',
      label: 'Venue Title',
      type: 'text',
      required: true,
    },
    {
      name: 'backgroundImage',
      type: 'upload',
      relationTo: 'media',
      required: true,
    },
    {
      name: 'alt',
      label: 'Alt Text',
      type: 'text',
      required: true,
    },
    {
      name: 'images',
      label: 'Images',
      type: 'upload',
      relationTo: 'media',
      required: true,
    },
  ],
};

export default Portfolio;


payloadconfig



import { buildConfig } from 'payload/config';
import dotenv from 'dotenv';
import Page from './collections/Page';
import Media from './collections/Media';
import Portfolio from './collections/Portfolio';
import MegaMenu from './globals/MegaMenu';
import SocialMedia from './globals/SocialMedia';
import Footer from './globals/Footer';

dotenv.config();

export default buildConfig({
  serverURL: process.env.PAYLOAD_PUBLIC_SERVER_URL,
  collections: [
    Page,
    Media,
    Portfolio,
  ],
  globals: [
    MegaMenu,
    SocialMedia,
    Footer,
  ],
});


Repo:


https://github.com/taunhealy/2160-Lodge-Bukela-2
  • default discord avatar
    exo37182 years ago

    in blocks/PortfolioHeroFields.ts 18:18 I think you need to change

    relationTo

    to

    portfolio

    (lowercase)

  • default discord avatar
    taun21602 years ago

    That worked, thanks!

  • default discord avatar
    exo37182 years ago

    any time 🙂



    oh just realized it was you from the other thread 😄



    good luck and have fun with payload 🙂

Star on GitHub

Star

Chat on Discord

Discord

online

Can't find what you're looking for?

Get dedicated engineering support directly from the Payload team.