[{"data":1,"prerenderedAt":2434},["ShallowReactive",2],{"navigation":3,"\u002F2.x\u002Fresources\u002Frelationships":307,"\u002F2.x\u002Fresources\u002Frelationships-surround":2430},{"3.x":4,"2.x":203},[5,32,61,99,121,147,165],{"title":6,"icon":7,"path":8,"stem":9,"children":10,"page":31},"Getting Started","i-heroicons-star","\u002Fgetting-started","1.getting-started",[11,15,19,23,27],{"title":12,"path":13,"stem":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":16,"path":17,"stem":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":20,"path":21,"stem":22},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":24,"path":25,"stem":26},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F4.configuration",{"title":28,"path":29,"stem":30},"Upgrade guide","\u002Fgetting-started\u002Fupgrade-guide","1.getting-started\u002F5.upgrade-guide",false,{"title":33,"icon":34,"path":35,"stem":36,"children":37,"page":31},"Resources","i-heroicons-document-text","\u002Fresources","2.resources",[38,41,45,49,53,57],{"title":33,"path":39,"stem":40},"\u002Fresources\u002Fresources","2.resources\u002F1.resources",{"title":42,"path":43,"stem":44},"Fields","\u002Fresources\u002Ffields","2.resources\u002F2.fields",{"title":46,"path":47,"stem":48},"Relationships","\u002Fresources\u002Frelations","2.resources\u002F3.relations",{"title":50,"path":51,"stem":52},"Validation","\u002Fresources\u002Fvalidation","2.resources\u002F4.validation",{"title":54,"path":55,"stem":56},"Perimeter","\u002Fresources\u002Fperimeter","2.resources\u002F5.perimeter",{"title":58,"path":59,"stem":60},"Limits","\u002Fresources\u002Flimits","2.resources\u002F6.limits",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":31},"Search","i-heroicons-magnifying-glass","\u002Fsearch","3.search",[67,71,75,79,83,87,91,95],{"title":68,"path":69,"stem":70},"Search overview","\u002Fsearch\u002Foverview","3.search\u002F1.overview",{"title":72,"path":73,"stem":74},"Search filters","\u002Fsearch\u002Ffilters","3.search\u002F2.filters",{"title":76,"path":77,"stem":78},"Sorts and selects","\u002Fsearch\u002Fsorts-and-selects","3.search\u002F3.sorts-and-selects",{"title":80,"path":81,"stem":82},"Includes and aggregates","\u002Fsearch\u002Fincludes-and-aggregates","3.search\u002F4.includes-and-aggregates",{"title":84,"path":85,"stem":86},"Scopes and instructions","\u002Fsearch\u002Fscopes-and-instructions","3.search\u002F5.scopes-and-instructions",{"title":88,"path":89,"stem":90},"Text search","\u002Fsearch\u002Ftext-search","3.search\u002F6.text-search",{"title":92,"path":93,"stem":94},"Search engines","\u002Fsearch\u002Fsearch-engines","3.search\u002F7.search-engines",{"title":96,"path":97,"stem":98},"Searching outside HTTP","\u002Fsearch\u002Foutside-http","3.search\u002F8.outside-http",{"title":100,"icon":101,"path":102,"stem":103,"children":104,"page":31},"Writing","i-heroicons-pencil-square","\u002Fwriting","4.writing",[105,109,113,117],{"title":106,"path":107,"stem":108},"Mutate","\u002Fwriting\u002Fmutate","4.writing\u002F1.mutate",{"title":110,"path":111,"stem":112},"Writing relations","\u002Fwriting\u002Frelations","4.writing\u002F2.relations",{"title":114,"path":115,"stem":116},"Versioned rows","\u002Fwriting\u002Fversioned-rows","4.writing\u002F3.versioned-rows",{"title":118,"path":119,"stem":120},"Deleting and restoring","\u002Fwriting\u002Fdeleting","4.writing\u002F4.deleting",{"title":122,"icon":123,"path":124,"stem":125,"children":126,"page":31},"Actions and Metrics","i-heroicons-bolt","\u002Factions-and-metrics","5.actions-and-metrics",[127,131,135,139,143],{"title":128,"path":129,"stem":130},"Actions","\u002Factions-and-metrics\u002Factions","5.actions-and-metrics\u002F1.actions",{"title":132,"path":133,"stem":134},"Queued Actions","\u002Factions-and-metrics\u002Fqueued-actions","5.actions-and-metrics\u002F2.queued-actions",{"title":136,"path":137,"stem":138},"Confirmation","\u002Factions-and-metrics\u002Fconfirmation","5.actions-and-metrics\u002F3.confirmation",{"title":140,"path":141,"stem":142},"Metrics","\u002Factions-and-metrics\u002Fmetrics","5.actions-and-metrics\u002F4.metrics",{"title":144,"path":145,"stem":146},"Exports","\u002Factions-and-metrics\u002Fexports","5.actions-and-metrics\u002F5.exports",{"title":148,"icon":149,"path":150,"stem":151,"children":152,"page":31},"Authorization","i-heroicons-lock-closed","\u002Fauthorization","6.authorization",[153,157,161],{"title":154,"path":155,"stem":156},"Policies","\u002Fauthorization\u002Fpolicies","6.authorization\u002F1.policies",{"title":158,"path":159,"stem":160},"Gates","\u002Fauthorization\u002Fgates","6.authorization\u002F2.gates",{"title":162,"path":163,"stem":164},"Decision Cache","\u002Fauthorization\u002Fdecision-cache","6.authorization\u002F3.decision-cache",{"title":166,"icon":167,"path":168,"stem":169,"children":170,"page":31},"Digging Deeper","i-heroicons-list-bullet","\u002Fdigging-deeper","7.digging-deeper",[171,175,179,183,187,191,195,199],{"title":172,"path":173,"stem":174},"Details","\u002Fdigging-deeper\u002Fdetails","7.digging-deeper\u002F1.details",{"title":176,"path":177,"stem":178},"Events and Hooks","\u002Fdigging-deeper\u002Fevents-and-hooks","7.digging-deeper\u002F2.events-and-hooks",{"title":180,"path":181,"stem":182},"Custom Responses","\u002Fdigging-deeper\u002Fresponses","7.digging-deeper\u002F3.responses",{"title":184,"path":185,"stem":186},"OpenAPI Documentation","\u002Fdigging-deeper\u002Fopenapi","7.digging-deeper\u002F4.openapi",{"title":188,"path":189,"stem":190},"Precognition","\u002Fdigging-deeper\u002Fprecognition","7.digging-deeper\u002F5.precognition",{"title":192,"path":193,"stem":194},"Artisan Commands","\u002Fdigging-deeper\u002Fartisan","7.digging-deeper\u002F6.artisan",{"title":196,"path":197,"stem":198},"Laravel Boost Skill","\u002Fdigging-deeper\u002Fai-skill","7.digging-deeper\u002F7.ai-skill",{"title":200,"path":201,"stem":202},"Translations","\u002Fdigging-deeper\u002Ftranslations","7.digging-deeper\u002F8.translations",[204,215,237,260,297],{"title":6,"icon":7,"path":205,"stem":206,"children":207,"page":31},"\u002F2.x\u002Fgetting-started","2.x\u002F1.getting-started",[208,211],{"title":16,"path":209,"stem":210},"\u002F2.x\u002Fgetting-started\u002Finstallation","2.x\u002F1.getting-started\u002F1.installation",{"title":212,"path":213,"stem":214},"Upgrade Guide","\u002F2.x\u002Fgetting-started\u002Fupgrade-guide","2.x\u002F1.getting-started\u002F2.upgrade-guide",{"title":216,"icon":217,"path":218,"stem":219,"children":220,"page":31},"Endpoints","i-heroicons-arrow-uturn-left","\u002F2.x\u002Fendpoints","2.x\u002F2.endpoints",[221,224,227,230,233],{"title":172,"path":222,"stem":223},"\u002F2.x\u002Fendpoints\u002Fdetails","2.x\u002F2.endpoints\u002F1.details",{"title":62,"path":225,"stem":226},"\u002F2.x\u002Fendpoints\u002Fsearch","2.x\u002F2.endpoints\u002F2.search",{"title":106,"path":228,"stem":229},"\u002F2.x\u002Fendpoints\u002Fmutate","2.x\u002F2.endpoints\u002F3.mutate",{"title":128,"path":231,"stem":232},"\u002F2.x\u002Fendpoints\u002Factions","2.x\u002F2.endpoints\u002F4.actions",{"title":234,"path":235,"stem":236},"Delete","\u002F2.x\u002Fendpoints\u002Fdelete","2.x\u002F2.endpoints\u002F5.delete",{"title":33,"icon":34,"path":238,"stem":239,"children":240,"page":31},"\u002F2.x\u002Fresources","2.x\u002F3.resources",[241,245,249,252,256],{"title":242,"path":243,"stem":244},"Basics","\u002F2.x\u002Fresources\u002Fbasics","2.x\u002F3.resources\u002F1.basics",{"title":246,"path":247,"stem":248},"Exposed Data","\u002F2.x\u002Fresources\u002Fexposed-data","2.x\u002F3.resources\u002F2.exposed-data",{"title":46,"path":250,"stem":251},"\u002F2.x\u002Fresources\u002Frelationships","2.x\u002F3.resources\u002F3.relationships",{"title":253,"path":254,"stem":255},"Validations","\u002F2.x\u002Fresources\u002Fvalidations","2.x\u002F3.resources\u002F4.validations",{"title":257,"path":258,"stem":259},"Interactions","\u002F2.x\u002Fresources\u002Finteractions","2.x\u002F3.resources\u002F5.interactions",{"title":166,"icon":167,"path":261,"stem":262,"children":263,"page":31},"\u002F2.x\u002Fdigging-deeper","2.x\u002F4.digging-deeper",[264,267,271,274,278,282,286,290,294],{"title":128,"path":265,"stem":266},"\u002F2.x\u002Fdigging-deeper\u002Factions","2.x\u002F4.digging-deeper\u002F1.actions",{"title":268,"path":269,"stem":270},"Hooks","\u002F2.x\u002Fdigging-deeper\u002Fhooks","2.x\u002F4.digging-deeper\u002F2.hooks",{"title":158,"path":272,"stem":273},"\u002F2.x\u002Fdigging-deeper\u002Fgates","2.x\u002F4.digging-deeper\u002F3.gates",{"title":275,"path":276,"stem":277},"Authorizations","\u002F2.x\u002Fdigging-deeper\u002Fauthorizations","2.x\u002F4.digging-deeper\u002F4.authorizations",{"title":279,"path":280,"stem":281},"Full Text Search","\u002F2.x\u002Fdigging-deeper\u002Ffull-text-search","2.x\u002F4.digging-deeper\u002F5.full-text-search",{"title":283,"path":284,"stem":285},"Instructions","\u002F2.x\u002Fdigging-deeper\u002Finstructions","2.x\u002F4.digging-deeper\u002F6.instructions",{"title":287,"path":288,"stem":289},"Responses","\u002F2.x\u002Fdigging-deeper\u002Fresponses","2.x\u002F4.digging-deeper\u002F7.responses",{"title":291,"path":292,"stem":293},"Documentation","\u002F2.x\u002Fdigging-deeper\u002Fdocumentation","2.x\u002F4.digging-deeper\u002F8.documentation",{"title":188,"path":295,"stem":296},"\u002F2.x\u002Fdigging-deeper\u002Fprecognition","2.x\u002F4.digging-deeper\u002F9.precognition",{"title":298,"icon":299,"path":300,"stem":301,"children":302,"page":31},"Integrations","i-lucide-puzzle","\u002F2.x\u002Fintegrations","2.x\u002F5.integrations",[303],{"title":304,"path":305,"stem":306},"Flutter","\u002F2.x\u002Fintegrations\u002Fflutter","2.x\u002F5.integrations\u002F1.flutter",{"id":308,"title":46,"body":309,"description":2424,"extension":2425,"links":2426,"meta":2427,"navigation":621,"path":250,"seo":2428,"stem":251,"__hash__":2429},"docs2x\u002F2.x\u002F3.resources\u002F3.relationships.md",{"type":310,"value":311,"toc":2402},"minimark",[312,316,319,567,570,575,586,651,656,665,722,726,735,792,796,805,862,868,872,881,938,943,947,956,1013,1017,1026,1083,1087,1090,1158,1242,1246,1254,1309,1313,1322,1379,1383,1392,1448,1452,1461,1517,1825,1829,1838,1895,1899,1902,1916,1972,1975,1977,2102,2204,2208,2225,2228,2289,2292,2398],[313,314,315],"p",{},"Be aware that all relations must be declared in the resource even though they'll be linked to Laravel relationships. You can't link models without using a resource. This allows Laravel Rest Api to take full advantage of Rest Resources to make your requests powerful and secure.",[313,317,318],{},"Your relationships should all be declared in the \"relations\" method of your resource:",[320,321,326],"pre",{"className":322,"code":323,"language":324,"meta":325,"style":325},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","class ModelResource extends Resource\n{\n    public function relations(RestRequest $request)\n    {\n        return [\n            HasOne::make('hasOneRelation', HasOneResource::class),\n            BelongsTo::make('belongsToRelation', BelongsToResource::class),\n            HasMany::make('hasManyRelation', HasManyResource::class),\n            BelongsToMany::make('belongsToManyRelation', BelongsToManyResource::class)\n                ->withPivotFields(['created_at']),\n        ];\n    }\n}\n","php","",[327,328,329,348,355,384,390,400,437,467,497,527,549,555,561],"code",{"__ignoreMap":325},[330,331,334,338,342,345],"span",{"class":332,"line":333},"line",1,[330,335,337],{"class":336},"spNyl","class",[330,339,341],{"class":340},"sBMFI"," ModelResource",[330,343,344],{"class":336}," extends",[330,346,347],{"class":340}," Resource\n",[330,349,351],{"class":332,"line":350},2,[330,352,354],{"class":353},"sMK4o","{\n",[330,356,358,361,364,368,371,374,377,381],{"class":332,"line":357},3,[330,359,360],{"class":336},"    public",[330,362,363],{"class":336}," function",[330,365,367],{"class":366},"s2Zo4"," relations",[330,369,370],{"class":353},"(",[330,372,373],{"class":340},"RestRequest",[330,375,376],{"class":353}," $",[330,378,380],{"class":379},"sTEyZ","request",[330,382,383],{"class":353},")\n",[330,385,387],{"class":332,"line":386},4,[330,388,389],{"class":353},"    {\n",[330,391,393,397],{"class":332,"line":392},5,[330,394,396],{"class":395},"s7zQu","        return",[330,398,399],{"class":353}," [\n",[330,401,403,406,409,412,414,417,421,423,426,429,431,434],{"class":332,"line":402},6,[330,404,405],{"class":340},"            HasOne",[330,407,408],{"class":353},"::",[330,410,411],{"class":366},"make",[330,413,370],{"class":353},[330,415,416],{"class":353},"'",[330,418,420],{"class":419},"sfazB","hasOneRelation",[330,422,416],{"class":353},[330,424,425],{"class":353},",",[330,427,428],{"class":340}," HasOneResource",[330,430,408],{"class":353},[330,432,337],{"class":433},"sbssI",[330,435,436],{"class":353},"),\n",[330,438,440,443,445,447,449,451,454,456,458,461,463,465],{"class":332,"line":439},7,[330,441,442],{"class":340},"            BelongsTo",[330,444,408],{"class":353},[330,446,411],{"class":366},[330,448,370],{"class":353},[330,450,416],{"class":353},[330,452,453],{"class":419},"belongsToRelation",[330,455,416],{"class":353},[330,457,425],{"class":353},[330,459,460],{"class":340}," BelongsToResource",[330,462,408],{"class":353},[330,464,337],{"class":433},[330,466,436],{"class":353},[330,468,470,473,475,477,479,481,484,486,488,491,493,495],{"class":332,"line":469},8,[330,471,472],{"class":340},"            HasMany",[330,474,408],{"class":353},[330,476,411],{"class":366},[330,478,370],{"class":353},[330,480,416],{"class":353},[330,482,483],{"class":419},"hasManyRelation",[330,485,416],{"class":353},[330,487,425],{"class":353},[330,489,490],{"class":340}," HasManyResource",[330,492,408],{"class":353},[330,494,337],{"class":433},[330,496,436],{"class":353},[330,498,500,503,505,507,509,511,514,516,518,521,523,525],{"class":332,"line":499},9,[330,501,502],{"class":340},"            BelongsToMany",[330,504,408],{"class":353},[330,506,411],{"class":366},[330,508,370],{"class":353},[330,510,416],{"class":353},[330,512,513],{"class":419},"belongsToManyRelation",[330,515,416],{"class":353},[330,517,425],{"class":353},[330,519,520],{"class":340}," BelongsToManyResource",[330,522,408],{"class":353},[330,524,337],{"class":433},[330,526,383],{"class":353},[330,528,530,533,536,539,541,544,546],{"class":332,"line":529},10,[330,531,532],{"class":353},"                ->",[330,534,535],{"class":366},"withPivotFields",[330,537,538],{"class":353},"([",[330,540,416],{"class":353},[330,542,543],{"class":419},"created_at",[330,545,416],{"class":353},[330,547,548],{"class":353},"]),\n",[330,550,552],{"class":332,"line":551},11,[330,553,554],{"class":353},"        ];\n",[330,556,558],{"class":332,"line":557},12,[330,559,560],{"class":353},"    }\n",[330,562,564],{"class":332,"line":563},13,[330,565,566],{"class":353},"}\n",[313,568,569],{},"The first argument of the relation is the name of the relationship in your model, the second one is the linked resource(s).",[571,572,574],"h2",{"id":573},"has-one","Has One",[313,576,577,578,581,582,585],{},"The ",[327,579,580],{},"HasOne"," relation corresponds to a ",[327,583,584],{},"hasOne"," Eloquent relationship. For example, let's assume a User model hasOne Address model. We may add the relationship to our User Rest resource like so:",[320,587,589],{"className":322,"code":588,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations\\HasOne;\n\nHasOne::make('address', AddressResource::class),\n",[327,590,591,617,623],{"__ignoreMap":325},[330,592,593,596,599,602,605,607,610,612,614],{"class":332,"line":333},[330,594,595],{"class":433},"use",[330,597,598],{"class":379}," Lomkit",[330,600,601],{"class":353},"\\",[330,603,604],{"class":379},"Rest",[330,606,601],{"class":353},[330,608,609],{"class":379},"Relations",[330,611,601],{"class":353},[330,613,580],{"class":379},[330,615,616],{"class":353},";\n",[330,618,619],{"class":332,"line":350},[330,620,622],{"emptyLinePlaceholder":621},true,"\n",[330,624,625,627,629,631,633,635,638,640,642,645,647,649],{"class":332,"line":357},[330,626,580],{"class":340},[330,628,408],{"class":353},[330,630,411],{"class":366},[330,632,370],{"class":353},[330,634,416],{"class":353},[330,636,637],{"class":419},"address",[330,639,416],{"class":353},[330,641,425],{"class":353},[330,643,644],{"class":340}," AddressResource",[330,646,408],{"class":353},[330,648,337],{"class":433},[330,650,436],{"class":353},[652,653,655],"h3",{"id":654},"has-one-of-many","Has One Of Many",[313,657,577,658,581,661,664],{},[327,659,660],{},"HasOneOfMany",[327,662,663],{},"hasOne ofMany"," Eloquent relationship. For example, let's assume a Restaurant model hasOneOfMany Order model. We may add the relationship to our Restaurant Rest resource like so:",[320,666,668],{"className":322,"code":667,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations\\HasOneOfMany;\n\nHasOneOfMany::make('order', OrderResource::class),\n",[327,669,670,690,694],{"__ignoreMap":325},[330,671,672,674,676,678,680,682,684,686,688],{"class":332,"line":333},[330,673,595],{"class":433},[330,675,598],{"class":379},[330,677,601],{"class":353},[330,679,604],{"class":379},[330,681,601],{"class":353},[330,683,609],{"class":379},[330,685,601],{"class":353},[330,687,660],{"class":379},[330,689,616],{"class":353},[330,691,692],{"class":332,"line":350},[330,693,622],{"emptyLinePlaceholder":621},[330,695,696,698,700,702,704,706,709,711,713,716,718,720],{"class":332,"line":357},[330,697,660],{"class":340},[330,699,408],{"class":353},[330,701,411],{"class":366},[330,703,370],{"class":353},[330,705,416],{"class":353},[330,707,708],{"class":419},"order",[330,710,416],{"class":353},[330,712,425],{"class":353},[330,714,715],{"class":340}," OrderResource",[330,717,408],{"class":353},[330,719,337],{"class":433},[330,721,436],{"class":353},[571,723,725],{"id":724},"has-many","Has Many",[313,727,577,728,581,731,734],{},[327,729,730],{},"HasMany",[327,732,733],{},"hasMany"," Eloquent relationship. For example, let's assume a User model hasMany Post models. We may add the relationship to our User Rest resource like so:",[320,736,738],{"className":322,"code":737,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations\\HasMany;\n\nHasMany::make('posts', PostResource::class),\n",[327,739,740,760,764],{"__ignoreMap":325},[330,741,742,744,746,748,750,752,754,756,758],{"class":332,"line":333},[330,743,595],{"class":433},[330,745,598],{"class":379},[330,747,601],{"class":353},[330,749,604],{"class":379},[330,751,601],{"class":353},[330,753,609],{"class":379},[330,755,601],{"class":353},[330,757,730],{"class":379},[330,759,616],{"class":353},[330,761,762],{"class":332,"line":350},[330,763,622],{"emptyLinePlaceholder":621},[330,765,766,768,770,772,774,776,779,781,783,786,788,790],{"class":332,"line":357},[330,767,730],{"class":340},[330,769,408],{"class":353},[330,771,411],{"class":366},[330,773,370],{"class":353},[330,775,416],{"class":353},[330,777,778],{"class":419},"posts",[330,780,416],{"class":353},[330,782,425],{"class":353},[330,784,785],{"class":340}," PostResource",[330,787,408],{"class":353},[330,789,337],{"class":433},[330,791,436],{"class":353},[571,793,795],{"id":794},"has-one-through","Has One Through",[313,797,577,798,581,801,804],{},[327,799,800],{},"HasOneThrough",[327,802,803],{},"hasOneThrough"," Eloquent relationship. For example, let's assume a User model hasOne car through a Company model. We may add the relationship to our User Rest resource like so:",[320,806,808],{"className":322,"code":807,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations\\HasOneThrough;\n\nHasOneThrough::make('car', CarResource::class),\n",[327,809,810,830,834],{"__ignoreMap":325},[330,811,812,814,816,818,820,822,824,826,828],{"class":332,"line":333},[330,813,595],{"class":433},[330,815,598],{"class":379},[330,817,601],{"class":353},[330,819,604],{"class":379},[330,821,601],{"class":353},[330,823,609],{"class":379},[330,825,601],{"class":353},[330,827,800],{"class":379},[330,829,616],{"class":353},[330,831,832],{"class":332,"line":350},[330,833,622],{"emptyLinePlaceholder":621},[330,835,836,838,840,842,844,846,849,851,853,856,858,860],{"class":332,"line":357},[330,837,800],{"class":340},[330,839,408],{"class":353},[330,841,411],{"class":366},[330,843,370],{"class":353},[330,845,416],{"class":353},[330,847,848],{"class":419},"car",[330,850,416],{"class":353},[330,852,425],{"class":353},[330,854,855],{"class":340}," CarResource",[330,857,408],{"class":353},[330,859,337],{"class":433},[330,861,436],{"class":353},[863,864,865],"warning",{},[313,866,867],{},"You can't mutate models using \"HasOneThrough\" relationships, please use a double \"HasOne\" relationship if you want to mutate the distant entry",[571,869,871],{"id":870},"has-many-through","Has Many Through",[313,873,577,874,581,877,880],{},[327,875,876],{},"HasManyThrough",[327,878,879],{},"hasManyThrough"," Eloquent relationship. For example, let's assume a User model hasMany stars through a Company model. We may add the relationship to our User Rest resource like so:",[320,882,884],{"className":322,"code":883,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations\\HasManyThrough;\n\nHasManyThrough::make('star', StarResource::class),\n",[327,885,886,906,910],{"__ignoreMap":325},[330,887,888,890,892,894,896,898,900,902,904],{"class":332,"line":333},[330,889,595],{"class":433},[330,891,598],{"class":379},[330,893,601],{"class":353},[330,895,604],{"class":379},[330,897,601],{"class":353},[330,899,609],{"class":379},[330,901,601],{"class":353},[330,903,876],{"class":379},[330,905,616],{"class":353},[330,907,908],{"class":332,"line":350},[330,909,622],{"emptyLinePlaceholder":621},[330,911,912,914,916,918,920,922,925,927,929,932,934,936],{"class":332,"line":357},[330,913,876],{"class":340},[330,915,408],{"class":353},[330,917,411],{"class":366},[330,919,370],{"class":353},[330,921,416],{"class":353},[330,923,924],{"class":419},"star",[330,926,416],{"class":353},[330,928,425],{"class":353},[330,930,931],{"class":340}," StarResource",[330,933,408],{"class":353},[330,935,337],{"class":433},[330,937,436],{"class":353},[863,939,940],{},[313,941,942],{},"You can't mutate models using \"HasManyThrough\" relationships, please use a \"HasOne\" relationship followed by a \"HasMany\" relationship if you want to mutate the distant entry",[571,944,946],{"id":945},"belongs-to","Belongs To",[313,948,577,949,581,952,955],{},[327,950,951],{},"BelongsTo",[327,953,954],{},"belongsTo"," Eloquent relationship. For example, let's assume a User model belongsTo a Company model. We may add the relationship to our User Rest resource like so:",[320,957,959],{"className":322,"code":958,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations\\BelongsTo;\n\nBelongsTo::make('company', CompanyResource::class),\n",[327,960,961,981,985],{"__ignoreMap":325},[330,962,963,965,967,969,971,973,975,977,979],{"class":332,"line":333},[330,964,595],{"class":433},[330,966,598],{"class":379},[330,968,601],{"class":353},[330,970,604],{"class":379},[330,972,601],{"class":353},[330,974,609],{"class":379},[330,976,601],{"class":353},[330,978,951],{"class":379},[330,980,616],{"class":353},[330,982,983],{"class":332,"line":350},[330,984,622],{"emptyLinePlaceholder":621},[330,986,987,989,991,993,995,997,1000,1002,1004,1007,1009,1011],{"class":332,"line":357},[330,988,951],{"class":340},[330,990,408],{"class":353},[330,992,411],{"class":366},[330,994,370],{"class":353},[330,996,416],{"class":353},[330,998,999],{"class":419},"company",[330,1001,416],{"class":353},[330,1003,425],{"class":353},[330,1005,1006],{"class":340}," CompanyResource",[330,1008,408],{"class":353},[330,1010,337],{"class":433},[330,1012,436],{"class":353},[571,1014,1016],{"id":1015},"belongs-to-many","Belongs To Many",[313,1018,577,1019,581,1022,1025],{},[327,1020,1021],{},"BelongsToMany",[327,1023,1024],{},"belongsToMany"," Eloquent relationship. For example, let's assume a User model belongsToMany Role models. We may add the relationship to our User Rest resource like so:",[320,1027,1029],{"className":322,"code":1028,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations\\BelongsToMany;\n\nBelongsToMany::make('roles', RoleResource::class),\n",[327,1030,1031,1051,1055],{"__ignoreMap":325},[330,1032,1033,1035,1037,1039,1041,1043,1045,1047,1049],{"class":332,"line":333},[330,1034,595],{"class":433},[330,1036,598],{"class":379},[330,1038,601],{"class":353},[330,1040,604],{"class":379},[330,1042,601],{"class":353},[330,1044,609],{"class":379},[330,1046,601],{"class":353},[330,1048,1021],{"class":379},[330,1050,616],{"class":353},[330,1052,1053],{"class":332,"line":350},[330,1054,622],{"emptyLinePlaceholder":621},[330,1056,1057,1059,1061,1063,1065,1067,1070,1072,1074,1077,1079,1081],{"class":332,"line":357},[330,1058,1021],{"class":340},[330,1060,408],{"class":353},[330,1062,411],{"class":366},[330,1064,370],{"class":353},[330,1066,416],{"class":353},[330,1068,1069],{"class":419},"roles",[330,1071,416],{"class":353},[330,1073,425],{"class":353},[330,1075,1076],{"class":340}," RoleResource",[330,1078,408],{"class":353},[330,1080,337],{"class":433},[330,1082,436],{"class":353},[652,1084,1086],{"id":1085},"pivot-fields","Pivot fields",[313,1088,1089],{},"If you want to specify pivot fields, you can achieve this by using:",[320,1091,1093],{"className":322,"code":1092,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations\\BelongsToMany;\n\nBelongsToMany::make('roles', RoleResource::class)->withPivotFields(['created_at']),\n",[327,1094,1095,1115,1119],{"__ignoreMap":325},[330,1096,1097,1099,1101,1103,1105,1107,1109,1111,1113],{"class":332,"line":333},[330,1098,595],{"class":433},[330,1100,598],{"class":379},[330,1102,601],{"class":353},[330,1104,604],{"class":379},[330,1106,601],{"class":353},[330,1108,609],{"class":379},[330,1110,601],{"class":353},[330,1112,1021],{"class":379},[330,1114,616],{"class":353},[330,1116,1117],{"class":332,"line":350},[330,1118,622],{"emptyLinePlaceholder":621},[330,1120,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1146,1148,1150,1152,1154,1156],{"class":332,"line":357},[330,1122,1021],{"class":340},[330,1124,408],{"class":353},[330,1126,411],{"class":366},[330,1128,370],{"class":353},[330,1130,416],{"class":353},[330,1132,1069],{"class":419},[330,1134,416],{"class":353},[330,1136,425],{"class":353},[330,1138,1076],{"class":340},[330,1140,408],{"class":353},[330,1142,337],{"class":433},[330,1144,1145],{"class":353},")->",[330,1147,535],{"class":366},[330,1149,538],{"class":353},[330,1151,416],{"class":353},[330,1153,543],{"class":419},[330,1155,416],{"class":353},[330,1157,548],{"class":353},[863,1159,1160,1163],{},[313,1161,1162],{},"Don't forget to specify those pivot fields on your model relationship.",[1164,1165,1167],"collapsible",{"name":1166},"relations",[320,1168,1170],{"className":322,"code":1169,"language":324,"meta":325,"style":325},"public function roles() {\n    return $this->belongsToMany(Role::class)\n        ->withPivot('created_at', 'updated_at');\n}\n",[327,1171,1172,1188,1209,1238],{"__ignoreMap":325},[330,1173,1174,1177,1179,1182,1185],{"class":332,"line":333},[330,1175,1176],{"class":336},"public",[330,1178,363],{"class":336},[330,1180,1181],{"class":366}," roles",[330,1183,1184],{"class":353},"()",[330,1186,1187],{"class":353}," {\n",[330,1189,1190,1193,1196,1198,1200,1203,1205,1207],{"class":332,"line":350},[330,1191,1192],{"class":395},"    return",[330,1194,1195],{"class":353}," $this->",[330,1197,1024],{"class":366},[330,1199,370],{"class":353},[330,1201,1202],{"class":340},"Role",[330,1204,408],{"class":353},[330,1206,337],{"class":433},[330,1208,383],{"class":353},[330,1210,1211,1214,1217,1219,1221,1223,1225,1227,1230,1233,1235],{"class":332,"line":357},[330,1212,1213],{"class":353},"        ->",[330,1215,1216],{"class":366},"withPivot",[330,1218,370],{"class":353},[330,1220,416],{"class":353},[330,1222,543],{"class":419},[330,1224,416],{"class":353},[330,1226,425],{"class":353},[330,1228,1229],{"class":353}," '",[330,1231,1232],{"class":419},"updated_at",[330,1234,416],{"class":353},[330,1236,1237],{"class":353},");\n",[330,1239,1240],{"class":332,"line":386},[330,1241,566],{"class":353},[571,1243,1245],{"id":1244},"morphone","MorphOne",[313,1247,577,1248,581,1250,1253],{},[327,1249,1245],{},[327,1251,1252],{},"morphOne"," Eloquent relationship. For example, let's assume a User model MorphOne Address model. We may add the relationship to our User Rest resource like so:",[320,1255,1257],{"className":322,"code":1256,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations\\MorphOne;\n\nMorphOne::make('address', AddressResource::class),\n",[327,1258,1259,1279,1283],{"__ignoreMap":325},[330,1260,1261,1263,1265,1267,1269,1271,1273,1275,1277],{"class":332,"line":333},[330,1262,595],{"class":433},[330,1264,598],{"class":379},[330,1266,601],{"class":353},[330,1268,604],{"class":379},[330,1270,601],{"class":353},[330,1272,609],{"class":379},[330,1274,601],{"class":353},[330,1276,1245],{"class":379},[330,1278,616],{"class":353},[330,1280,1281],{"class":332,"line":350},[330,1282,622],{"emptyLinePlaceholder":621},[330,1284,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307],{"class":332,"line":357},[330,1286,1245],{"class":340},[330,1288,408],{"class":353},[330,1290,411],{"class":366},[330,1292,370],{"class":353},[330,1294,416],{"class":353},[330,1296,637],{"class":419},[330,1298,416],{"class":353},[330,1300,425],{"class":353},[330,1302,644],{"class":340},[330,1304,408],{"class":353},[330,1306,337],{"class":433},[330,1308,436],{"class":353},[652,1310,1312],{"id":1311},"morph-one-of-many","Morph One Of Many",[313,1314,577,1315,581,1318,1321],{},[327,1316,1317],{},"MorphOneOfMany",[327,1319,1320],{},"morphOneOfMany"," Eloquent relationship. For example, let's assume a User model MorphOneOfMany color models. We may add the relationship to our User Rest resource like so:",[320,1323,1325],{"className":322,"code":1324,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations\\MorphOneOfMany;\n\nMorphOneOfMany::make('color', ColorResource::class),\n",[327,1326,1327,1347,1351],{"__ignoreMap":325},[330,1328,1329,1331,1333,1335,1337,1339,1341,1343,1345],{"class":332,"line":333},[330,1330,595],{"class":433},[330,1332,598],{"class":379},[330,1334,601],{"class":353},[330,1336,604],{"class":379},[330,1338,601],{"class":353},[330,1340,609],{"class":379},[330,1342,601],{"class":353},[330,1344,1317],{"class":379},[330,1346,616],{"class":353},[330,1348,1349],{"class":332,"line":350},[330,1350,622],{"emptyLinePlaceholder":621},[330,1352,1353,1355,1357,1359,1361,1363,1366,1368,1370,1373,1375,1377],{"class":332,"line":357},[330,1354,1317],{"class":340},[330,1356,408],{"class":353},[330,1358,411],{"class":366},[330,1360,370],{"class":353},[330,1362,416],{"class":353},[330,1364,1365],{"class":419},"color",[330,1367,416],{"class":353},[330,1369,425],{"class":353},[330,1371,1372],{"class":340}," ColorResource",[330,1374,408],{"class":353},[330,1376,337],{"class":433},[330,1378,436],{"class":353},[571,1380,1382],{"id":1381},"morph-many","Morph Many",[313,1384,577,1385,581,1388,1391],{},[327,1386,1387],{},"MorphMany",[327,1389,1390],{},"morphMany"," Eloquent relationship. For example, let's assume a User model MorphMany Color models. We may add the relationship to our User Rest resource like so:",[320,1393,1395],{"className":322,"code":1394,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations\\MorphMany;\n\nMorphMany::make('colors', ColorResource::class),\n",[327,1396,1397,1417,1421],{"__ignoreMap":325},[330,1398,1399,1401,1403,1405,1407,1409,1411,1413,1415],{"class":332,"line":333},[330,1400,595],{"class":433},[330,1402,598],{"class":379},[330,1404,601],{"class":353},[330,1406,604],{"class":379},[330,1408,601],{"class":353},[330,1410,609],{"class":379},[330,1412,601],{"class":353},[330,1414,1387],{"class":379},[330,1416,616],{"class":353},[330,1418,1419],{"class":332,"line":350},[330,1420,622],{"emptyLinePlaceholder":621},[330,1422,1423,1425,1427,1429,1431,1433,1436,1438,1440,1442,1444,1446],{"class":332,"line":357},[330,1424,1387],{"class":340},[330,1426,408],{"class":353},[330,1428,411],{"class":366},[330,1430,370],{"class":353},[330,1432,416],{"class":353},[330,1434,1435],{"class":419},"colors",[330,1437,416],{"class":353},[330,1439,425],{"class":353},[330,1441,1372],{"class":340},[330,1443,408],{"class":353},[330,1445,337],{"class":433},[330,1447,436],{"class":353},[571,1449,1451],{"id":1450},"morph-to","Morph To",[313,1453,577,1454,581,1457,1460],{},[327,1455,1456],{},"MorphTo",[327,1458,1459],{},"morphTo"," Eloquent relationship. For example, let's assume a Comment model MorphTo a Post or an Video model. We may add the relationship to our Comment Rest resource like so:",[320,1462,1464],{"className":322,"code":1463,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations\\MorphTo;\n\nMorphTo::make('commentable', PostResource::class),\n",[327,1465,1466,1486,1490],{"__ignoreMap":325},[330,1467,1468,1470,1472,1474,1476,1478,1480,1482,1484],{"class":332,"line":333},[330,1469,595],{"class":433},[330,1471,598],{"class":379},[330,1473,601],{"class":353},[330,1475,604],{"class":379},[330,1477,601],{"class":353},[330,1479,609],{"class":379},[330,1481,601],{"class":353},[330,1483,1456],{"class":379},[330,1485,616],{"class":353},[330,1487,1488],{"class":332,"line":350},[330,1489,622],{"emptyLinePlaceholder":621},[330,1491,1492,1494,1496,1498,1500,1502,1505,1507,1509,1511,1513,1515],{"class":332,"line":357},[330,1493,1456],{"class":340},[330,1495,408],{"class":353},[330,1497,411],{"class":366},[330,1499,370],{"class":353},[330,1501,416],{"class":353},[330,1503,1504],{"class":419},"commentable",[330,1506,416],{"class":353},[330,1508,425],{"class":353},[330,1510,785],{"class":340},[330,1512,408],{"class":353},[330,1514,337],{"class":433},[330,1516,436],{"class":353},[863,1518,1519,1522],{},[313,1520,1521],{},"You must specify multiple relations for each morph to resource possible. Please consider declaring multiple relations in your model.",[1164,1523,1524],{"name":1166},[320,1525,1527],{"className":322,"code":1526,"language":324,"meta":325,"style":325},"\u002F\u002F You can't declare this relation in Laravel Rest Api\npublic function commentable(): MorphTo\n{\n    return $this->morphTo();\n}\n\npublic function post(): MorphTo\n{\n    return $this->morphTo('post', 'commentable_type', 'commentable_id')->whereHas('comment', function (Builder $query) {\n        $query->where('commentable_type', Post::class);\n    });\n}\n\npublic function video(): MorphTo\n{\n    return $this->morphTo('video', 'commentable_type', 'commentable_id')->whereHas('comment', function (Builder $query) {\n        $query->where('commentable_type', Video::class);\n    });\n}\n",[327,1528,1529,1535,1550,1554,1565,1569,1573,1586,1590,1659,1691,1696,1700,1704,1718,1723,1785,1815,1820],{"__ignoreMap":325},[330,1530,1531],{"class":332,"line":333},[330,1532,1534],{"class":1533},"sHwdD","\u002F\u002F You can't declare this relation in Laravel Rest Api\n",[330,1536,1537,1539,1541,1544,1547],{"class":332,"line":350},[330,1538,1176],{"class":336},[330,1540,363],{"class":336},[330,1542,1543],{"class":366}," commentable",[330,1545,1546],{"class":353},"():",[330,1548,1549],{"class":340}," MorphTo\n",[330,1551,1552],{"class":332,"line":357},[330,1553,354],{"class":353},[330,1555,1556,1558,1560,1562],{"class":332,"line":386},[330,1557,1192],{"class":395},[330,1559,1195],{"class":353},[330,1561,1459],{"class":366},[330,1563,1564],{"class":353},"();\n",[330,1566,1567],{"class":332,"line":392},[330,1568,566],{"class":353},[330,1570,1571],{"class":332,"line":402},[330,1572,622],{"emptyLinePlaceholder":621},[330,1574,1575,1577,1579,1582,1584],{"class":332,"line":439},[330,1576,1176],{"class":336},[330,1578,363],{"class":336},[330,1580,1581],{"class":366}," post",[330,1583,1546],{"class":353},[330,1585,1549],{"class":340},[330,1587,1588],{"class":332,"line":469},[330,1589,354],{"class":353},[330,1591,1592,1594,1596,1598,1600,1602,1605,1607,1609,1611,1614,1616,1618,1620,1623,1625,1627,1630,1632,1634,1637,1639,1641,1643,1646,1649,1651,1654,1657],{"class":332,"line":499},[330,1593,1192],{"class":395},[330,1595,1195],{"class":353},[330,1597,1459],{"class":366},[330,1599,370],{"class":353},[330,1601,416],{"class":353},[330,1603,1604],{"class":419},"post",[330,1606,416],{"class":353},[330,1608,425],{"class":353},[330,1610,1229],{"class":353},[330,1612,1613],{"class":419},"commentable_type",[330,1615,416],{"class":353},[330,1617,425],{"class":353},[330,1619,1229],{"class":353},[330,1621,1622],{"class":419},"commentable_id",[330,1624,416],{"class":353},[330,1626,1145],{"class":353},[330,1628,1629],{"class":366},"whereHas",[330,1631,370],{"class":353},[330,1633,416],{"class":353},[330,1635,1636],{"class":419},"comment",[330,1638,416],{"class":353},[330,1640,425],{"class":353},[330,1642,363],{"class":336},[330,1644,1645],{"class":353}," (",[330,1647,1648],{"class":340},"Builder",[330,1650,376],{"class":353},[330,1652,1653],{"class":379},"query",[330,1655,1656],{"class":353},")",[330,1658,1187],{"class":353},[330,1660,1661,1664,1666,1669,1672,1674,1676,1678,1680,1682,1685,1687,1689],{"class":332,"line":529},[330,1662,1663],{"class":353},"        $",[330,1665,1653],{"class":379},[330,1667,1668],{"class":353},"->",[330,1670,1671],{"class":366},"where",[330,1673,370],{"class":353},[330,1675,416],{"class":353},[330,1677,1613],{"class":419},[330,1679,416],{"class":353},[330,1681,425],{"class":353},[330,1683,1684],{"class":340}," Post",[330,1686,408],{"class":353},[330,1688,337],{"class":433},[330,1690,1237],{"class":353},[330,1692,1693],{"class":332,"line":551},[330,1694,1695],{"class":353},"    });\n",[330,1697,1698],{"class":332,"line":557},[330,1699,566],{"class":353},[330,1701,1702],{"class":332,"line":563},[330,1703,622],{"emptyLinePlaceholder":621},[330,1705,1707,1709,1711,1714,1716],{"class":332,"line":1706},14,[330,1708,1176],{"class":336},[330,1710,363],{"class":336},[330,1712,1713],{"class":366}," video",[330,1715,1546],{"class":353},[330,1717,1549],{"class":340},[330,1719,1721],{"class":332,"line":1720},15,[330,1722,354],{"class":353},[330,1724,1726,1728,1730,1732,1734,1736,1739,1741,1743,1745,1747,1749,1751,1753,1755,1757,1759,1761,1763,1765,1767,1769,1771,1773,1775,1777,1779,1781,1783],{"class":332,"line":1725},16,[330,1727,1192],{"class":395},[330,1729,1195],{"class":353},[330,1731,1459],{"class":366},[330,1733,370],{"class":353},[330,1735,416],{"class":353},[330,1737,1738],{"class":419},"video",[330,1740,416],{"class":353},[330,1742,425],{"class":353},[330,1744,1229],{"class":353},[330,1746,1613],{"class":419},[330,1748,416],{"class":353},[330,1750,425],{"class":353},[330,1752,1229],{"class":353},[330,1754,1622],{"class":419},[330,1756,416],{"class":353},[330,1758,1145],{"class":353},[330,1760,1629],{"class":366},[330,1762,370],{"class":353},[330,1764,416],{"class":353},[330,1766,1636],{"class":419},[330,1768,416],{"class":353},[330,1770,425],{"class":353},[330,1772,363],{"class":336},[330,1774,1645],{"class":353},[330,1776,1648],{"class":340},[330,1778,376],{"class":353},[330,1780,1653],{"class":379},[330,1782,1656],{"class":353},[330,1784,1187],{"class":353},[330,1786,1788,1790,1792,1794,1796,1798,1800,1802,1804,1806,1809,1811,1813],{"class":332,"line":1787},17,[330,1789,1663],{"class":353},[330,1791,1653],{"class":379},[330,1793,1668],{"class":353},[330,1795,1671],{"class":366},[330,1797,370],{"class":353},[330,1799,416],{"class":353},[330,1801,1613],{"class":419},[330,1803,416],{"class":353},[330,1805,425],{"class":353},[330,1807,1808],{"class":340}," Video",[330,1810,408],{"class":353},[330,1812,337],{"class":433},[330,1814,1237],{"class":353},[330,1816,1818],{"class":332,"line":1817},18,[330,1819,1695],{"class":353},[330,1821,1823],{"class":332,"line":1822},19,[330,1824,566],{"class":353},[571,1826,1828],{"id":1827},"morph-to-many","Morph To Many",[313,1830,577,1831,581,1834,1837],{},[327,1832,1833],{},"MorphToMany",[327,1835,1836],{},"morphToMany"," Eloquent relationship. For example, let's assume a Post model MorphToMany Tag models. We may add the relationship to our Post Rest resource like so:",[320,1839,1841],{"className":322,"code":1840,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations\\MorphToMany;\n\nMorphToMany::make('taggable', TagResource::class),\n",[327,1842,1843,1863,1867],{"__ignoreMap":325},[330,1844,1845,1847,1849,1851,1853,1855,1857,1859,1861],{"class":332,"line":333},[330,1846,595],{"class":433},[330,1848,598],{"class":379},[330,1850,601],{"class":353},[330,1852,604],{"class":379},[330,1854,601],{"class":353},[330,1856,609],{"class":379},[330,1858,601],{"class":353},[330,1860,1833],{"class":379},[330,1862,616],{"class":353},[330,1864,1865],{"class":332,"line":350},[330,1866,622],{"emptyLinePlaceholder":621},[330,1868,1869,1871,1873,1875,1877,1879,1882,1884,1886,1889,1891,1893],{"class":332,"line":357},[330,1870,1833],{"class":340},[330,1872,408],{"class":353},[330,1874,411],{"class":366},[330,1876,370],{"class":353},[330,1878,416],{"class":353},[330,1880,1881],{"class":419},"taggable",[330,1883,416],{"class":353},[330,1885,425],{"class":353},[330,1887,1888],{"class":340}," TagResource",[330,1890,408],{"class":353},[330,1892,337],{"class":433},[330,1894,436],{"class":353},[652,1896,1898],{"id":1897},"defining-the-inverse-of-the-relationship","Defining the inverse of the relationship",[313,1900,1901],{},"As Laravel allows, you can use the \"morphedByMany\" relationship to define the inverse.",[313,1903,577,1904,1907,1908,1911,1912,1915],{},[327,1905,1906],{},"morphedByMany"," relation allows to define on the ",[327,1909,1910],{},"TagResource"," the relation to the ",[327,1913,1914],{},"PostResource"," as follows:",[320,1917,1919],{"className":322,"code":1918,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations\\MorphedByMany;\n\nMorphedByMany::make('taggable', PostResource::class),\n",[327,1920,1921,1942,1946],{"__ignoreMap":325},[330,1922,1923,1925,1927,1929,1931,1933,1935,1937,1940],{"class":332,"line":333},[330,1924,595],{"class":433},[330,1926,598],{"class":379},[330,1928,601],{"class":353},[330,1930,604],{"class":379},[330,1932,601],{"class":353},[330,1934,609],{"class":379},[330,1936,601],{"class":353},[330,1938,1939],{"class":379},"MorphedByMany",[330,1941,616],{"class":353},[330,1943,1944],{"class":332,"line":350},[330,1945,622],{"emptyLinePlaceholder":621},[330,1947,1948,1950,1952,1954,1956,1958,1960,1962,1964,1966,1968,1970],{"class":332,"line":357},[330,1949,1939],{"class":340},[330,1951,408],{"class":353},[330,1953,411],{"class":366},[330,1955,370],{"class":353},[330,1957,416],{"class":353},[330,1959,1881],{"class":419},[330,1961,416],{"class":353},[330,1963,425],{"class":353},[330,1965,785],{"class":340},[330,1967,408],{"class":353},[330,1969,337],{"class":433},[330,1971,436],{"class":353},[652,1973,1086],{"id":1974},"pivot-fields-1",[313,1976,1089],{},[320,1978,1980],{"className":322,"code":1979,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations\\MorphToMany;\nuse Lomkit\\Rest\\Relations\\MorphedByMany;\n\nMorphToMany::make('taggable', TagResource::class)->withPivotFields(['created_at']),\nMorphedByMany::make('taggable', PostResource::class)->withPivotFields(['created_at']),\n",[327,1981,1982,2002,2022,2026,2064],{"__ignoreMap":325},[330,1983,1984,1986,1988,1990,1992,1994,1996,1998,2000],{"class":332,"line":333},[330,1985,595],{"class":433},[330,1987,598],{"class":379},[330,1989,601],{"class":353},[330,1991,604],{"class":379},[330,1993,601],{"class":353},[330,1995,609],{"class":379},[330,1997,601],{"class":353},[330,1999,1833],{"class":379},[330,2001,616],{"class":353},[330,2003,2004,2006,2008,2010,2012,2014,2016,2018,2020],{"class":332,"line":350},[330,2005,595],{"class":433},[330,2007,598],{"class":379},[330,2009,601],{"class":353},[330,2011,604],{"class":379},[330,2013,601],{"class":353},[330,2015,609],{"class":379},[330,2017,601],{"class":353},[330,2019,1939],{"class":379},[330,2021,616],{"class":353},[330,2023,2024],{"class":332,"line":357},[330,2025,622],{"emptyLinePlaceholder":621},[330,2027,2028,2030,2032,2034,2036,2038,2040,2042,2044,2046,2048,2050,2052,2054,2056,2058,2060,2062],{"class":332,"line":386},[330,2029,1833],{"class":340},[330,2031,408],{"class":353},[330,2033,411],{"class":366},[330,2035,370],{"class":353},[330,2037,416],{"class":353},[330,2039,1881],{"class":419},[330,2041,416],{"class":353},[330,2043,425],{"class":353},[330,2045,1888],{"class":340},[330,2047,408],{"class":353},[330,2049,337],{"class":433},[330,2051,1145],{"class":353},[330,2053,535],{"class":366},[330,2055,538],{"class":353},[330,2057,416],{"class":353},[330,2059,543],{"class":419},[330,2061,416],{"class":353},[330,2063,548],{"class":353},[330,2065,2066,2068,2070,2072,2074,2076,2078,2080,2082,2084,2086,2088,2090,2092,2094,2096,2098,2100],{"class":332,"line":392},[330,2067,1939],{"class":340},[330,2069,408],{"class":353},[330,2071,411],{"class":366},[330,2073,370],{"class":353},[330,2075,416],{"class":353},[330,2077,1881],{"class":419},[330,2079,416],{"class":353},[330,2081,425],{"class":353},[330,2083,785],{"class":340},[330,2085,408],{"class":353},[330,2087,337],{"class":433},[330,2089,1145],{"class":353},[330,2091,535],{"class":366},[330,2093,538],{"class":353},[330,2095,416],{"class":353},[330,2097,543],{"class":419},[330,2099,416],{"class":353},[330,2101,548],{"class":353},[863,2103,2104,2106],{},[313,2105,1162],{},[1164,2107,2108],{"name":1166},[320,2109,2111],{"className":322,"code":2110,"language":324,"meta":325,"style":325},"$this->morphToMany(Tag::class, 'taggable')->withPivot('created_at', 'updated_at');\n$this->morphedByMany(Post::class, 'taggable')->withPivot('created_at', 'updated_at');\n",[327,2112,2113,2159],{"__ignoreMap":325},[330,2114,2115,2118,2120,2122,2125,2127,2129,2131,2133,2135,2137,2139,2141,2143,2145,2147,2149,2151,2153,2155,2157],{"class":332,"line":333},[330,2116,2117],{"class":353},"$this->",[330,2119,1836],{"class":366},[330,2121,370],{"class":353},[330,2123,2124],{"class":340},"Tag",[330,2126,408],{"class":353},[330,2128,337],{"class":433},[330,2130,425],{"class":353},[330,2132,1229],{"class":353},[330,2134,1881],{"class":419},[330,2136,416],{"class":353},[330,2138,1145],{"class":353},[330,2140,1216],{"class":366},[330,2142,370],{"class":353},[330,2144,416],{"class":353},[330,2146,543],{"class":419},[330,2148,416],{"class":353},[330,2150,425],{"class":353},[330,2152,1229],{"class":353},[330,2154,1232],{"class":419},[330,2156,416],{"class":353},[330,2158,1237],{"class":353},[330,2160,2161,2163,2165,2167,2170,2172,2174,2176,2178,2180,2182,2184,2186,2188,2190,2192,2194,2196,2198,2200,2202],{"class":332,"line":350},[330,2162,2117],{"class":353},[330,2164,1906],{"class":366},[330,2166,370],{"class":353},[330,2168,2169],{"class":340},"Post",[330,2171,408],{"class":353},[330,2173,337],{"class":433},[330,2175,425],{"class":353},[330,2177,1229],{"class":353},[330,2179,1881],{"class":419},[330,2181,416],{"class":353},[330,2183,1145],{"class":353},[330,2185,1216],{"class":366},[330,2187,370],{"class":353},[330,2189,416],{"class":353},[330,2191,543],{"class":419},[330,2193,416],{"class":353},[330,2195,425],{"class":353},[330,2197,1229],{"class":353},[330,2199,1232],{"class":419},[330,2201,416],{"class":353},[330,2203,1237],{"class":353},[571,2205,2207],{"id":2206},"constrained-relations","Constrained Relations",[313,2209,2210,2211,2214,2215,2214,2218,2221,2222],{},"In some cases you might want to constrain the relation on mutation, Laravel Rest Api offers you constraints such has ",[327,2212,2213],{},"requiredOnCreation",", ",[327,2216,2217],{},"prohibitedOnCreation",[327,2219,2220],{},"requiredOnUpdate"," and ",[327,2223,2224],{},"prohibitedOnUpdate",[313,2226,2227],{},"You can apply a constraint on a relation by using:",[320,2229,2231],{"className":322,"code":2230,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations;\n\nBelongsTo::make('company', CompanyResource::class)\n    ->requiredOnCreation(),\n",[327,2232,2233,2249,2253,2279],{"__ignoreMap":325},[330,2234,2235,2237,2239,2241,2243,2245,2247],{"class":332,"line":333},[330,2236,595],{"class":433},[330,2238,598],{"class":379},[330,2240,601],{"class":353},[330,2242,604],{"class":379},[330,2244,601],{"class":353},[330,2246,609],{"class":379},[330,2248,616],{"class":353},[330,2250,2251],{"class":332,"line":350},[330,2252,622],{"emptyLinePlaceholder":621},[330,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277],{"class":332,"line":357},[330,2256,951],{"class":340},[330,2258,408],{"class":353},[330,2260,411],{"class":366},[330,2262,370],{"class":353},[330,2264,416],{"class":353},[330,2266,999],{"class":419},[330,2268,416],{"class":353},[330,2270,425],{"class":353},[330,2272,1006],{"class":340},[330,2274,408],{"class":353},[330,2276,337],{"class":433},[330,2278,383],{"class":353},[330,2280,2281,2284,2286],{"class":332,"line":386},[330,2282,2283],{"class":353},"    ->",[330,2285,2213],{"class":366},[330,2287,2288],{"class":353},"(),\n",[313,2290,2291],{},"You can also specify a closure to condition this:",[320,2293,2295],{"className":322,"code":2294,"language":324,"meta":325,"style":325},"use Lomkit\\Rest\\Relations;\n\nBelongsTo::make('company', CompanyResource::class)\n    ->requiredOnCreation(function(\\Lomkit\\Rest\\Http\\Requests\\RestRequest $request) {\n        return true;\n    }),\n",[327,2296,2297,2313,2317,2343,2386,2393],{"__ignoreMap":325},[330,2298,2299,2301,2303,2305,2307,2309,2311],{"class":332,"line":333},[330,2300,595],{"class":433},[330,2302,598],{"class":379},[330,2304,601],{"class":353},[330,2306,604],{"class":379},[330,2308,601],{"class":353},[330,2310,609],{"class":379},[330,2312,616],{"class":353},[330,2314,2315],{"class":332,"line":350},[330,2316,622],{"emptyLinePlaceholder":621},[330,2318,2319,2321,2323,2325,2327,2329,2331,2333,2335,2337,2339,2341],{"class":332,"line":357},[330,2320,951],{"class":340},[330,2322,408],{"class":353},[330,2324,411],{"class":366},[330,2326,370],{"class":353},[330,2328,416],{"class":353},[330,2330,999],{"class":419},[330,2332,416],{"class":353},[330,2334,425],{"class":353},[330,2336,1006],{"class":340},[330,2338,408],{"class":353},[330,2340,337],{"class":433},[330,2342,383],{"class":353},[330,2344,2345,2347,2349,2351,2354,2357,2360,2362,2364,2366,2369,2371,2374,2376,2378,2380,2382,2384],{"class":332,"line":386},[330,2346,2283],{"class":353},[330,2348,2213],{"class":366},[330,2350,370],{"class":353},[330,2352,2353],{"class":336},"function",[330,2355,2356],{"class":353},"(\\",[330,2358,2359],{"class":379},"Lomkit",[330,2361,601],{"class":353},[330,2363,604],{"class":379},[330,2365,601],{"class":353},[330,2367,2368],{"class":379},"Http",[330,2370,601],{"class":353},[330,2372,2373],{"class":379},"Requests",[330,2375,601],{"class":353},[330,2377,373],{"class":340},[330,2379,376],{"class":353},[330,2381,380],{"class":379},[330,2383,1656],{"class":353},[330,2385,1187],{"class":353},[330,2387,2388,2390],{"class":332,"line":392},[330,2389,396],{"class":395},[330,2391,2392],{"class":353}," true;\n",[330,2394,2395],{"class":332,"line":402},[330,2396,2397],{"class":353},"    }),\n",[2399,2400,2401],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":325,"searchDepth":333,"depth":350,"links":2403},[2404,2407,2408,2409,2410,2411,2414,2417,2418,2419,2423],{"id":573,"depth":350,"text":574,"children":2405},[2406],{"id":654,"depth":357,"text":655},{"id":724,"depth":350,"text":725},{"id":794,"depth":350,"text":795},{"id":870,"depth":350,"text":871},{"id":945,"depth":350,"text":946},{"id":1015,"depth":350,"text":1016,"children":2412},[2413],{"id":1085,"depth":357,"text":1086},{"id":1244,"depth":350,"text":1245,"children":2415},[2416],{"id":1311,"depth":357,"text":1312},{"id":1381,"depth":350,"text":1382},{"id":1450,"depth":350,"text":1451},{"id":1827,"depth":350,"text":1828,"children":2420},[2421,2422],{"id":1897,"depth":357,"text":1898},{"id":1974,"depth":357,"text":1086},{"id":2206,"depth":350,"text":2207},"In addition to the variety of fields we've already discussed, Laravel Rest Api has full support for all of Laravel's relationships. After adding relationships to your REST resources, you'll be able to directly access them from the requested resource, eliminating the need for multiple API calls.","md",null,{},{"description":2424},"RcqpeU9MgeST_mJyZVADl6zYtqFXXKLQ0WYkapjVMoQ",[2431,2432],{"title":246,"path":247,"stem":248,"description":325,"children":-1},{"title":253,"path":254,"stem":255,"description":2433,"children":-1},"Validations allows you to check incoming requests to avoid inconstancies in your database.",1794181352837]