[{"data":1,"prerenderedAt":3831},["ShallowReactive",2],{"navigation":3,"\u002Fsearch\u002Ffilters":307,"\u002Fsearch\u002Ffilters-surround":3826},{"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":72,"body":309,"description":3819,"extension":3820,"links":3821,"meta":3822,"navigation":571,"path":73,"seo":3823,"sitemap":3824,"stem":74,"__hash__":3825},"docs3x\u002F3.search\u002F2.filters.md",{"type":310,"value":311,"toc":3800},"minimark",[312,316,1008,1013,1157,1171,1218,1347,1351,1354,1506,1553,1808,1813,1928,1975,1979,2008,2012,2020,2226,2272,2276,2282,2418,2467,2471,2486,2541,2569,2573,2590,2594,2601,2851,2861,2991,2995,3004,3097,3137,3141,3152,3354,3372,3376,3384,3417,3420,3569,3572,3645,3648,3789,3796],[313,314,315],"p",{},"A filter reads its field through the field's declaration: the field decides whether it can be filtered, which operators it accepts and how its value is validated.",[317,318,324],"pre",{"className":319,"code":320,"filename":321,"language":322,"meta":323,"style":323},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","use Illuminate\\Contracts\\Database\\Eloquent\\Builder;\nuse Lomkit\\Rest\\Fields\\Boolean;\nuse Lomkit\\Rest\\Fields\\Date;\nuse Lomkit\\Rest\\Fields\\Enum;\nuse Lomkit\\Rest\\Fields\\ID;\nuse Lomkit\\Rest\\Fields\\Integer;\nuse Lomkit\\Rest\\Fields\\Text;\nuse Lomkit\\Rest\\Relations\\BelongsTo;\nuse Lomkit\\Rest\\Relations\\BelongsToMany;\nuse Lomkit\\Rest\\Relations\\HasMany;\n\npublic function fields(): array\n{\n    return [\n        ID::make('id'),\n        Text::make('title')->filterable(['=', 'like']),   \u002F\u002F = and like only\n        Text::make('summary')->nullable(),                 \u002F\u002F the Text operators, plus is null and is not null\n        Text::make('slug')->filterable(false),             \u002F\u002F refused in filters\n        Enum::make('status'),\n        Boolean::make('featured'),\n        Integer::make('views'),\n        Date::make('published_on'),\n    ];\n}\n\npublic function relations(): array\n{\n    return [\n        BelongsTo::make('author', AuthorResource::class),\n        HasMany::make('comments', CommentResource::class),\n        BelongsToMany::make('tags', TagResource::class)->pivotFields([\n            Integer::make('weight'),\n        ]),\n    ];\n}\n","app\u002FRest\u002FResources\u002FPostResource.php","php","",[325,326,327,365,389,411,433,455,477,499,522,544,566,573,593,599,609,637,690,719,747,768,789,810,831,837,843,848,862,867,874,905,935,971,992,998,1003],"code",{"__ignoreMap":323},[328,329,332,336,340,344,347,349,352,354,357,359,362],"span",{"class":330,"line":331},"line",1,[328,333,335],{"class":334},"sbssI","use",[328,337,339],{"class":338},"sTEyZ"," Illuminate",[328,341,343],{"class":342},"sMK4o","\\",[328,345,346],{"class":338},"Contracts",[328,348,343],{"class":342},[328,350,351],{"class":338},"Database",[328,353,343],{"class":342},[328,355,356],{"class":338},"Eloquent",[328,358,343],{"class":342},[328,360,361],{"class":338},"Builder",[328,363,364],{"class":342},";\n",[328,366,368,370,373,375,378,380,382,384,387],{"class":330,"line":367},2,[328,369,335],{"class":334},[328,371,372],{"class":338}," Lomkit",[328,374,343],{"class":342},[328,376,377],{"class":338},"Rest",[328,379,343],{"class":342},[328,381,42],{"class":338},[328,383,343],{"class":342},[328,385,386],{"class":338},"Boolean",[328,388,364],{"class":342},[328,390,392,394,396,398,400,402,404,406,409],{"class":330,"line":391},3,[328,393,335],{"class":334},[328,395,372],{"class":338},[328,397,343],{"class":342},[328,399,377],{"class":338},[328,401,343],{"class":342},[328,403,42],{"class":338},[328,405,343],{"class":342},[328,407,408],{"class":338},"Date",[328,410,364],{"class":342},[328,412,414,416,418,420,422,424,426,428,431],{"class":330,"line":413},4,[328,415,335],{"class":334},[328,417,372],{"class":338},[328,419,343],{"class":342},[328,421,377],{"class":338},[328,423,343],{"class":342},[328,425,42],{"class":338},[328,427,343],{"class":342},[328,429,430],{"class":338},"Enum",[328,432,364],{"class":342},[328,434,436,438,440,442,444,446,448,450,453],{"class":330,"line":435},5,[328,437,335],{"class":334},[328,439,372],{"class":338},[328,441,343],{"class":342},[328,443,377],{"class":338},[328,445,343],{"class":342},[328,447,42],{"class":338},[328,449,343],{"class":342},[328,451,452],{"class":338},"ID",[328,454,364],{"class":342},[328,456,458,460,462,464,466,468,470,472,475],{"class":330,"line":457},6,[328,459,335],{"class":334},[328,461,372],{"class":338},[328,463,343],{"class":342},[328,465,377],{"class":338},[328,467,343],{"class":342},[328,469,42],{"class":338},[328,471,343],{"class":342},[328,473,474],{"class":338},"Integer",[328,476,364],{"class":342},[328,478,480,482,484,486,488,490,492,494,497],{"class":330,"line":479},7,[328,481,335],{"class":334},[328,483,372],{"class":338},[328,485,343],{"class":342},[328,487,377],{"class":338},[328,489,343],{"class":342},[328,491,42],{"class":338},[328,493,343],{"class":342},[328,495,496],{"class":338},"Text",[328,498,364],{"class":342},[328,500,502,504,506,508,510,512,515,517,520],{"class":330,"line":501},8,[328,503,335],{"class":334},[328,505,372],{"class":338},[328,507,343],{"class":342},[328,509,377],{"class":338},[328,511,343],{"class":342},[328,513,514],{"class":338},"Relations",[328,516,343],{"class":342},[328,518,519],{"class":338},"BelongsTo",[328,521,364],{"class":342},[328,523,525,527,529,531,533,535,537,539,542],{"class":330,"line":524},9,[328,526,335],{"class":334},[328,528,372],{"class":338},[328,530,343],{"class":342},[328,532,377],{"class":338},[328,534,343],{"class":342},[328,536,514],{"class":338},[328,538,343],{"class":342},[328,540,541],{"class":338},"BelongsToMany",[328,543,364],{"class":342},[328,545,547,549,551,553,555,557,559,561,564],{"class":330,"line":546},10,[328,548,335],{"class":334},[328,550,372],{"class":338},[328,552,343],{"class":342},[328,554,377],{"class":338},[328,556,343],{"class":342},[328,558,514],{"class":338},[328,560,343],{"class":342},[328,562,563],{"class":338},"HasMany",[328,565,364],{"class":342},[328,567,569],{"class":330,"line":568},11,[328,570,572],{"emptyLinePlaceholder":571},true,"\n",[328,574,576,580,583,587,590],{"class":330,"line":575},12,[328,577,579],{"class":578},"spNyl","public",[328,581,582],{"class":578}," function",[328,584,586],{"class":585},"s2Zo4"," fields",[328,588,589],{"class":342},"():",[328,591,592],{"class":334}," array\n",[328,594,596],{"class":330,"line":595},13,[328,597,598],{"class":342},"{\n",[328,600,602,606],{"class":330,"line":601},14,[328,603,605],{"class":604},"s7zQu","    return",[328,607,608],{"class":342}," [\n",[328,610,612,616,619,622,625,628,632,634],{"class":330,"line":611},15,[328,613,615],{"class":614},"sBMFI","        ID",[328,617,618],{"class":342},"::",[328,620,621],{"class":585},"make",[328,623,624],{"class":342},"(",[328,626,627],{"class":342},"'",[328,629,631],{"class":630},"sfazB","id",[328,633,627],{"class":342},[328,635,636],{"class":342},"),\n",[328,638,640,643,645,647,649,651,654,656,659,662,665,667,670,672,675,678,681,683,686],{"class":330,"line":639},16,[328,641,642],{"class":614},"        Text",[328,644,618],{"class":342},[328,646,621],{"class":585},[328,648,624],{"class":342},[328,650,627],{"class":342},[328,652,653],{"class":630},"title",[328,655,627],{"class":342},[328,657,658],{"class":342},")->",[328,660,661],{"class":585},"filterable",[328,663,664],{"class":342},"([",[328,666,627],{"class":342},[328,668,669],{"class":630},"=",[328,671,627],{"class":342},[328,673,674],{"class":342},",",[328,676,677],{"class":342}," '",[328,679,680],{"class":630},"like",[328,682,627],{"class":342},[328,684,685],{"class":342},"]),",[328,687,689],{"class":688},"sHwdD","   \u002F\u002F = and like only\n",[328,691,693,695,697,699,701,703,706,708,710,713,716],{"class":330,"line":692},17,[328,694,642],{"class":614},[328,696,618],{"class":342},[328,698,621],{"class":585},[328,700,624],{"class":342},[328,702,627],{"class":342},[328,704,705],{"class":630},"summary",[328,707,627],{"class":342},[328,709,658],{"class":342},[328,711,712],{"class":585},"nullable",[328,714,715],{"class":342},"(),",[328,717,718],{"class":688},"                 \u002F\u002F the Text operators, plus is null and is not null\n",[328,720,722,724,726,728,730,732,735,737,739,741,744],{"class":330,"line":721},18,[328,723,642],{"class":614},[328,725,618],{"class":342},[328,727,621],{"class":585},[328,729,624],{"class":342},[328,731,627],{"class":342},[328,733,734],{"class":630},"slug",[328,736,627],{"class":342},[328,738,658],{"class":342},[328,740,661],{"class":585},[328,742,743],{"class":342},"(false),",[328,745,746],{"class":688},"             \u002F\u002F refused in filters\n",[328,748,750,753,755,757,759,761,764,766],{"class":330,"line":749},19,[328,751,752],{"class":614},"        Enum",[328,754,618],{"class":342},[328,756,621],{"class":585},[328,758,624],{"class":342},[328,760,627],{"class":342},[328,762,763],{"class":630},"status",[328,765,627],{"class":342},[328,767,636],{"class":342},[328,769,771,774,776,778,780,782,785,787],{"class":330,"line":770},20,[328,772,773],{"class":614},"        Boolean",[328,775,618],{"class":342},[328,777,621],{"class":585},[328,779,624],{"class":342},[328,781,627],{"class":342},[328,783,784],{"class":630},"featured",[328,786,627],{"class":342},[328,788,636],{"class":342},[328,790,792,795,797,799,801,803,806,808],{"class":330,"line":791},21,[328,793,794],{"class":614},"        Integer",[328,796,618],{"class":342},[328,798,621],{"class":585},[328,800,624],{"class":342},[328,802,627],{"class":342},[328,804,805],{"class":630},"views",[328,807,627],{"class":342},[328,809,636],{"class":342},[328,811,813,816,818,820,822,824,827,829],{"class":330,"line":812},22,[328,814,815],{"class":614},"        Date",[328,817,618],{"class":342},[328,819,621],{"class":585},[328,821,624],{"class":342},[328,823,627],{"class":342},[328,825,826],{"class":630},"published_on",[328,828,627],{"class":342},[328,830,636],{"class":342},[328,832,834],{"class":330,"line":833},23,[328,835,836],{"class":342},"    ];\n",[328,838,840],{"class":330,"line":839},24,[328,841,842],{"class":342},"}\n",[328,844,846],{"class":330,"line":845},25,[328,847,572],{"emptyLinePlaceholder":571},[328,849,851,853,855,858,860],{"class":330,"line":850},26,[328,852,579],{"class":578},[328,854,582],{"class":578},[328,856,857],{"class":585}," relations",[328,859,589],{"class":342},[328,861,592],{"class":334},[328,863,865],{"class":330,"line":864},27,[328,866,598],{"class":342},[328,868,870,872],{"class":330,"line":869},28,[328,871,605],{"class":604},[328,873,608],{"class":342},[328,875,877,880,882,884,886,888,891,893,895,898,900,903],{"class":330,"line":876},29,[328,878,879],{"class":614},"        BelongsTo",[328,881,618],{"class":342},[328,883,621],{"class":585},[328,885,624],{"class":342},[328,887,627],{"class":342},[328,889,890],{"class":630},"author",[328,892,627],{"class":342},[328,894,674],{"class":342},[328,896,897],{"class":614}," AuthorResource",[328,899,618],{"class":342},[328,901,902],{"class":334},"class",[328,904,636],{"class":342},[328,906,908,911,913,915,917,919,922,924,926,929,931,933],{"class":330,"line":907},30,[328,909,910],{"class":614},"        HasMany",[328,912,618],{"class":342},[328,914,621],{"class":585},[328,916,624],{"class":342},[328,918,627],{"class":342},[328,920,921],{"class":630},"comments",[328,923,627],{"class":342},[328,925,674],{"class":342},[328,927,928],{"class":614}," CommentResource",[328,930,618],{"class":342},[328,932,902],{"class":334},[328,934,636],{"class":342},[328,936,938,941,943,945,947,949,952,954,956,959,961,963,965,968],{"class":330,"line":937},31,[328,939,940],{"class":614},"        BelongsToMany",[328,942,618],{"class":342},[328,944,621],{"class":585},[328,946,624],{"class":342},[328,948,627],{"class":342},[328,950,951],{"class":630},"tags",[328,953,627],{"class":342},[328,955,674],{"class":342},[328,957,958],{"class":614}," TagResource",[328,960,618],{"class":342},[328,962,902],{"class":334},[328,964,658],{"class":342},[328,966,967],{"class":585},"pivotFields",[328,969,970],{"class":342},"([\n",[328,972,974,977,979,981,983,985,988,990],{"class":330,"line":973},32,[328,975,976],{"class":614},"            Integer",[328,978,618],{"class":342},[328,980,621],{"class":585},[328,982,624],{"class":342},[328,984,627],{"class":342},[328,986,987],{"class":630},"weight",[328,989,627],{"class":342},[328,991,636],{"class":342},[328,993,995],{"class":330,"line":994},33,[328,996,997],{"class":342},"        ]),\n",[328,999,1001],{"class":330,"line":1000},34,[328,1002,836],{"class":342},[328,1004,1006],{"class":330,"line":1005},35,[328,1007,842],{"class":342},[1009,1010,1012],"h2",{"id":1011},"conditions","Conditions",[317,1014,1019],{"className":1015,"code":1016,"filename":1017,"language":1018,"meta":323,"style":323},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"search\": {\n    \"filters\": [\n      {\"field\": \"views\", \"operator\": \">\", \"value\": 100},\n      {\"field\": \"featured\", \"value\": true}\n    ]\n  }\n}\n","POST \u002Fapi\u002Fposts\u002Fsearch","json",[325,1020,1021,1025,1042,1056,1112,1143,1148,1153],{"__ignoreMap":323},[328,1022,1023],{"class":330,"line":331},[328,1024,598],{"class":342},[328,1026,1027,1030,1033,1036,1039],{"class":330,"line":367},[328,1028,1029],{"class":342},"  \"",[328,1031,1032],{"class":578},"search",[328,1034,1035],{"class":342},"\"",[328,1037,1038],{"class":342},":",[328,1040,1041],{"class":342}," {\n",[328,1043,1044,1047,1050,1052,1054],{"class":330,"line":391},[328,1045,1046],{"class":342},"    \"",[328,1048,1049],{"class":614},"filters",[328,1051,1035],{"class":342},[328,1053,1038],{"class":342},[328,1055,608],{"class":342},[328,1057,1058,1061,1063,1066,1068,1070,1073,1075,1077,1079,1081,1084,1086,1088,1090,1093,1095,1097,1099,1102,1104,1106,1109],{"class":330,"line":413},[328,1059,1060],{"class":342},"      {",[328,1062,1035],{"class":342},[328,1064,1065],{"class":334},"field",[328,1067,1035],{"class":342},[328,1069,1038],{"class":342},[328,1071,1072],{"class":342}," \"",[328,1074,805],{"class":630},[328,1076,1035],{"class":342},[328,1078,674],{"class":342},[328,1080,1072],{"class":342},[328,1082,1083],{"class":334},"operator",[328,1085,1035],{"class":342},[328,1087,1038],{"class":342},[328,1089,1072],{"class":342},[328,1091,1092],{"class":630},">",[328,1094,1035],{"class":342},[328,1096,674],{"class":342},[328,1098,1072],{"class":342},[328,1100,1101],{"class":334},"value",[328,1103,1035],{"class":342},[328,1105,1038],{"class":342},[328,1107,1108],{"class":334}," 100",[328,1110,1111],{"class":342},"},\n",[328,1113,1114,1116,1118,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140],{"class":330,"line":435},[328,1115,1060],{"class":342},[328,1117,1035],{"class":342},[328,1119,1065],{"class":334},[328,1121,1035],{"class":342},[328,1123,1038],{"class":342},[328,1125,1072],{"class":342},[328,1127,784],{"class":630},[328,1129,1035],{"class":342},[328,1131,674],{"class":342},[328,1133,1072],{"class":342},[328,1135,1101],{"class":334},[328,1137,1035],{"class":342},[328,1139,1038],{"class":342},[328,1141,1142],{"class":342}," true}\n",[328,1144,1145],{"class":330,"line":457},[328,1146,1147],{"class":342},"    ]\n",[328,1149,1150],{"class":330,"line":479},[328,1151,1152],{"class":342},"  }\n",[328,1154,1155],{"class":330,"line":501},[328,1156,842],{"class":342},[313,1158,1159,1160,1162,1163,1162,1165,1167,1168,1038],{},"A filter holds ",[325,1161,1065],{},", ",[325,1164,1083],{},[325,1166,1101],{}," and ",[325,1169,1170],{},"type",[1172,1173,1174,1188,1195,1200],"ul",{},[1175,1176,1177,1179,1180,1183,1184,1187],"li",{},[325,1178,1065],{}," names a filterable field of the resource, a relation path such as ",[325,1181,1182],{},"author.last_name",", or a pivot field such as ",[325,1185,1186],{},"tags.pivot.weight",".",[1175,1189,1190,1192,1193,1187],{},[325,1191,1083],{}," is one of the operators of the field. Without it, the filter compares with ",[325,1194,669],{},[1175,1196,1197,1199],{},[325,1198,1101],{}," is validated for the operator and the type of the field.",[1175,1201,1202,1204,1205,1208,1209,1212,1213,1215,1216,1187],{},[325,1203,1170],{}," is ",[325,1206,1207],{},"and",", the default, or ",[325,1210,1211],{},"or",": an ",[325,1214,1211],{}," filter is combined with the filter before it by ",[325,1217,1211],{},[317,1219,1221],{"className":1015,"code":1220,"filename":1017,"language":1018,"meta":323,"style":323},"{\n  \"search\": {\n    \"filters\": [\n      {\"field\": \"status\", \"value\": \"published\"},\n      {\"field\": \"featured\", \"value\": true, \"type\": \"or\"}\n    ]\n  }\n}\n",[325,1222,1223,1227,1239,1251,1288,1335,1339,1343],{"__ignoreMap":323},[328,1224,1225],{"class":330,"line":331},[328,1226,598],{"class":342},[328,1228,1229,1231,1233,1235,1237],{"class":330,"line":367},[328,1230,1029],{"class":342},[328,1232,1032],{"class":578},[328,1234,1035],{"class":342},[328,1236,1038],{"class":342},[328,1238,1041],{"class":342},[328,1240,1241,1243,1245,1247,1249],{"class":330,"line":391},[328,1242,1046],{"class":342},[328,1244,1049],{"class":614},[328,1246,1035],{"class":342},[328,1248,1038],{"class":342},[328,1250,608],{"class":342},[328,1252,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1284,1286],{"class":330,"line":413},[328,1254,1060],{"class":342},[328,1256,1035],{"class":342},[328,1258,1065],{"class":334},[328,1260,1035],{"class":342},[328,1262,1038],{"class":342},[328,1264,1072],{"class":342},[328,1266,763],{"class":630},[328,1268,1035],{"class":342},[328,1270,674],{"class":342},[328,1272,1072],{"class":342},[328,1274,1101],{"class":334},[328,1276,1035],{"class":342},[328,1278,1038],{"class":342},[328,1280,1072],{"class":342},[328,1282,1283],{"class":630},"published",[328,1285,1035],{"class":342},[328,1287,1111],{"class":342},[328,1289,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1319,1321,1323,1325,1327,1329,1331,1333],{"class":330,"line":435},[328,1291,1060],{"class":342},[328,1293,1035],{"class":342},[328,1295,1065],{"class":334},[328,1297,1035],{"class":342},[328,1299,1038],{"class":342},[328,1301,1072],{"class":342},[328,1303,784],{"class":630},[328,1305,1035],{"class":342},[328,1307,674],{"class":342},[328,1309,1072],{"class":342},[328,1311,1101],{"class":334},[328,1313,1035],{"class":342},[328,1315,1038],{"class":342},[328,1317,1318],{"class":342}," true,",[328,1320,1072],{"class":342},[328,1322,1170],{"class":334},[328,1324,1035],{"class":342},[328,1326,1038],{"class":342},[328,1328,1072],{"class":342},[328,1330,1211],{"class":630},[328,1332,1035],{"class":342},[328,1334,842],{"class":342},[328,1336,1337],{"class":330,"line":457},[328,1338,1147],{"class":342},[328,1340,1341],{"class":330,"line":479},[328,1342,1152],{"class":342},[328,1344,1345],{"class":330,"line":501},[328,1346,842],{"class":342},[1009,1348,1350],{"id":1349},"operators","Operators",[313,1352,1353],{},"The operators depend on the type of the field:",[1355,1356,1357,1369],"table",{},[1358,1359,1360],"thead",{},[1361,1362,1363,1367],"tr",{},[1364,1365,1366],"th",{},"Field",[1364,1368,1350],{},[1370,1371,1372,1394,1421,1457,1469,1496],"tbody",{},[1361,1373,1374,1381],{},[1375,1376,1377,1162,1379],"td",{},[325,1378,452],{},[325,1380,430],{},[1375,1382,1383,1162,1385,1162,1388,1162,1391],{},[325,1384,669],{},[325,1386,1387],{},"!=",[325,1389,1390],{},"in",[325,1392,1393],{},"not in",[1361,1395,1396,1400],{},[1375,1397,1398],{},[325,1399,496],{},[1375,1401,1402,1162,1404,1162,1406,1162,1408,1162,1411,1162,1414,1162,1417,1162,1419],{},[325,1403,669],{},[325,1405,1387],{},[325,1407,680],{},[325,1409,1410],{},"not like",[325,1412,1413],{},"ilike",[325,1415,1416],{},"not ilike",[325,1418,1390],{},[325,1420,1393],{},[1361,1422,1423,1430],{},[1375,1424,1425,1162,1428],{},[325,1426,1427],{},"Number",[325,1429,474],{},[1375,1431,1432,1162,1434,1162,1436,1162,1438,1162,1441,1162,1444,1162,1447,1162,1450,1162,1453,1162,1455],{},[325,1433,669],{},[325,1435,1387],{},[325,1437,1092],{},[325,1439,1440],{},">=",[325,1442,1443],{},"\u003C",[325,1445,1446],{},"\u003C=",[325,1448,1449],{},"between",[325,1451,1452],{},"not between",[325,1454,1390],{},[325,1456,1393],{},[1361,1458,1459,1463],{},[1375,1460,1461],{},[325,1462,386],{},[1375,1464,1465,1162,1467],{},[325,1466,669],{},[325,1468,1387],{},[1361,1470,1471,1478],{},[1375,1472,1473,1162,1475],{},[325,1474,408],{},[325,1476,1477],{},"DateTime",[1375,1479,1480,1162,1482,1162,1484,1162,1486,1162,1488,1162,1490,1162,1492,1162,1494],{},[325,1481,669],{},[325,1483,1387],{},[325,1485,1092],{},[325,1487,1440],{},[325,1489,1443],{},[325,1491,1446],{},[325,1493,1449],{},[325,1495,1452],{},[1361,1497,1498,1503],{},[1375,1499,1500],{},[325,1501,1502],{},"Json",[1375,1504,1505],{},"none",[1172,1507,1508,1522,1535,1547],{},[1175,1509,1510,1511,1514,1515,1167,1518,1521],{},"A ",[325,1512,1513],{},"nullable()"," field adds ",[325,1516,1517],{},"is null",[325,1519,1520],{},"is not null"," to the operators of its type.",[1175,1523,1524,1527,1528,1531,1532,1187],{},[325,1525,1526],{},"filterable([...])"," narrows the operators of a field to the listed ones. Each one must be an operator of the field: ",[325,1529,1530],{},"Boolean::make('featured')->filterable(['>'])"," throws ",[325,1533,1534],{},"InvalidFieldException",[1175,1536,1537,1538,1540,1541,1162,1544,1546],{},"On a field that does not accept ",[325,1539,669],{},", such as ",[325,1542,1543],{},"filterable(['like'])",[325,1545,1083],{}," is required.",[1175,1548,1549,1550,1187],{},"The operators are the cases of ",[325,1551,1552],{},"Lomkit\\Rest\\Fields\\Filtering\\FilterOperator",[317,1554,1556],{"className":1015,"code":1555,"filename":1017,"language":1018,"meta":323,"style":323},"{\n  \"search\": {\n    \"filters\": [\n      {\"field\": \"title\", \"operator\": \"like\", \"value\": \"%Laravel%\"},\n      {\"field\": \"views\", \"operator\": \"between\", \"value\": [100, 500]},\n      {\"field\": \"status\", \"operator\": \"in\", \"value\": [\"published\", \"scheduled\"]},\n      {\"field\": \"summary\", \"operator\": \"is not null\"}\n    ]\n  }\n}\n",[325,1557,1558,1562,1574,1586,1639,1697,1760,1796,1800,1804],{"__ignoreMap":323},[328,1559,1560],{"class":330,"line":331},[328,1561,598],{"class":342},[328,1563,1564,1566,1568,1570,1572],{"class":330,"line":367},[328,1565,1029],{"class":342},[328,1567,1032],{"class":578},[328,1569,1035],{"class":342},[328,1571,1038],{"class":342},[328,1573,1041],{"class":342},[328,1575,1576,1578,1580,1582,1584],{"class":330,"line":391},[328,1577,1046],{"class":342},[328,1579,1049],{"class":614},[328,1581,1035],{"class":342},[328,1583,1038],{"class":342},[328,1585,608],{"class":342},[328,1587,1588,1590,1592,1594,1596,1598,1600,1602,1604,1606,1608,1610,1612,1614,1616,1618,1620,1622,1624,1626,1628,1630,1632,1635,1637],{"class":330,"line":413},[328,1589,1060],{"class":342},[328,1591,1035],{"class":342},[328,1593,1065],{"class":334},[328,1595,1035],{"class":342},[328,1597,1038],{"class":342},[328,1599,1072],{"class":342},[328,1601,653],{"class":630},[328,1603,1035],{"class":342},[328,1605,674],{"class":342},[328,1607,1072],{"class":342},[328,1609,1083],{"class":334},[328,1611,1035],{"class":342},[328,1613,1038],{"class":342},[328,1615,1072],{"class":342},[328,1617,680],{"class":630},[328,1619,1035],{"class":342},[328,1621,674],{"class":342},[328,1623,1072],{"class":342},[328,1625,1101],{"class":334},[328,1627,1035],{"class":342},[328,1629,1038],{"class":342},[328,1631,1072],{"class":342},[328,1633,1634],{"class":630},"%Laravel%",[328,1636,1035],{"class":342},[328,1638,1111],{"class":342},[328,1640,1641,1643,1645,1647,1649,1651,1653,1655,1657,1659,1661,1663,1665,1667,1669,1671,1673,1675,1677,1679,1681,1683,1686,1689,1691,1694],{"class":330,"line":435},[328,1642,1060],{"class":342},[328,1644,1035],{"class":342},[328,1646,1065],{"class":334},[328,1648,1035],{"class":342},[328,1650,1038],{"class":342},[328,1652,1072],{"class":342},[328,1654,805],{"class":630},[328,1656,1035],{"class":342},[328,1658,674],{"class":342},[328,1660,1072],{"class":342},[328,1662,1083],{"class":334},[328,1664,1035],{"class":342},[328,1666,1038],{"class":342},[328,1668,1072],{"class":342},[328,1670,1449],{"class":630},[328,1672,1035],{"class":342},[328,1674,674],{"class":342},[328,1676,1072],{"class":342},[328,1678,1101],{"class":334},[328,1680,1035],{"class":342},[328,1682,1038],{"class":342},[328,1684,1685],{"class":342}," [",[328,1687,1688],{"class":334},"100",[328,1690,674],{"class":342},[328,1692,1693],{"class":334}," 500",[328,1695,1696],{"class":342},"]},\n",[328,1698,1699,1701,1703,1705,1707,1709,1711,1713,1715,1717,1719,1721,1723,1725,1727,1729,1731,1733,1735,1737,1739,1741,1743,1745,1747,1749,1751,1753,1756,1758],{"class":330,"line":457},[328,1700,1060],{"class":342},[328,1702,1035],{"class":342},[328,1704,1065],{"class":334},[328,1706,1035],{"class":342},[328,1708,1038],{"class":342},[328,1710,1072],{"class":342},[328,1712,763],{"class":630},[328,1714,1035],{"class":342},[328,1716,674],{"class":342},[328,1718,1072],{"class":342},[328,1720,1083],{"class":334},[328,1722,1035],{"class":342},[328,1724,1038],{"class":342},[328,1726,1072],{"class":342},[328,1728,1390],{"class":630},[328,1730,1035],{"class":342},[328,1732,674],{"class":342},[328,1734,1072],{"class":342},[328,1736,1101],{"class":334},[328,1738,1035],{"class":342},[328,1740,1038],{"class":342},[328,1742,1685],{"class":342},[328,1744,1035],{"class":342},[328,1746,1283],{"class":630},[328,1748,1035],{"class":342},[328,1750,674],{"class":342},[328,1752,1072],{"class":342},[328,1754,1755],{"class":630},"scheduled",[328,1757,1035],{"class":342},[328,1759,1696],{"class":342},[328,1761,1762,1764,1766,1768,1770,1772,1774,1776,1778,1780,1782,1784,1786,1788,1790,1792,1794],{"class":330,"line":479},[328,1763,1060],{"class":342},[328,1765,1035],{"class":342},[328,1767,1065],{"class":334},[328,1769,1035],{"class":342},[328,1771,1038],{"class":342},[328,1773,1072],{"class":342},[328,1775,705],{"class":630},[328,1777,1035],{"class":342},[328,1779,674],{"class":342},[328,1781,1072],{"class":342},[328,1783,1083],{"class":334},[328,1785,1035],{"class":342},[328,1787,1038],{"class":342},[328,1789,1072],{"class":342},[328,1791,1520],{"class":630},[328,1793,1035],{"class":342},[328,1795,842],{"class":342},[328,1797,1798],{"class":330,"line":501},[328,1799,1147],{"class":342},[328,1801,1802],{"class":330,"line":524},[328,1803,1152],{"class":342},[328,1805,1806],{"class":330,"line":546},[328,1807,842],{"class":342},[1809,1810,1812],"h3",{"id":1811},"values","Values",[1355,1814,1815,1825],{},[1358,1816,1817],{},[1361,1818,1819,1822],{},[1364,1820,1821],{},"Operator",[1364,1823,1824],{},"Value",[1370,1826,1827,1868,1891,1906,1917],{},[1361,1828,1829,1843],{},[1375,1830,1831,1162,1833,1162,1835,1162,1837,1162,1839,1162,1841],{},[325,1832,669],{},[325,1834,1387],{},[325,1836,1092],{},[325,1838,1440],{},[325,1840,1443],{},[325,1842,1446],{},[1375,1844,1845,1846,1848,1849,1851,1852,1854,1855,1857,1858,1167,1860,1862,1863,1865,1866],{},"A value of the field's type: a string for ",[325,1847,496],{},", an integer for ",[325,1850,474],{},", a number for ",[325,1853,1427],{},", a boolean for ",[325,1856,386],{},", a date for ",[325,1859,408],{},[325,1861,1477],{},", a value of the enum for ",[325,1864,430],{},", a key of the model's key type for ",[325,1867,452],{},[1361,1869,1870,1880],{},[1375,1871,1872,1162,1874,1162,1876,1162,1878],{},[325,1873,680],{},[325,1875,1410],{},[325,1877,1413],{},[325,1879,1416],{},[1375,1881,1882,1883,1886,1887,1890],{},"A string of at most ",[325,1884,1885],{},"rest.limits.lengths.patterns"," characters, 255 by default, or ",[325,1888,1889],{},"rest.limits.lengths.values"," when it is smaller",[1361,1892,1893,1899],{},[1375,1894,1895,1162,1897],{},[325,1896,1390],{},[325,1898,1393],{},[1375,1900,1901,1902,1905],{},"A list of at least one value, at most ",[325,1903,1904],{},"rest.limits.sizes.values"," values (100 by default), each of the field's type",[1361,1907,1908,1914],{},[1375,1909,1910,1162,1912],{},[325,1911,1449],{},[325,1913,1452],{},[1375,1915,1916],{},"A list of exactly two values of the field's type",[1361,1918,1919,1925],{},[1375,1920,1921,1162,1923],{},[325,1922,1517],{},[325,1924,1520],{},[1375,1926,1927],{},"No value",[1172,1929,1930,1950,1960,1969],{},[1175,1931,1932,1167,1934,1936,1937,1940,1941,1943,1944,1946,1947,1187],{},[325,1933,669],{},[325,1935,1387],{}," refuse ",[325,1938,1939],{},"null",". Use ",[325,1942,1517],{}," or ",[325,1945,1520],{}," on a nullable field: ",[325,1948,1949],{},"{\"field\": \"summary\", \"operator\": \"is null\"}",[1175,1951,1510,1952,1954,1955,1943,1957,1959],{},[325,1953,408],{}," value is compared as the start of its day. A ",[325,1956,408],{},[325,1958,1477],{}," value is written in the date format of the model before the comparison.",[1175,1961,1962,1963,1965,1966],{},"A string value, and each string of a list, has at most ",[325,1964,1889],{}," characters, 1,000 by default, whatever the operator: ",[325,1967,1968],{},"The search.filters.0.value field must not be greater than 1000 characters.",[1175,1970,1971,1972,1187],{},"The error of an entry of a list goes under its position: ",[325,1973,1974],{},"search.filters.0.value.1",[1809,1976,1978],{"id":1977},"case-and-databases","Case and databases",[1172,1980,1981,1992],{},[1175,1982,1983,1167,1985,1987,1988,1991],{},[325,1984,680],{},[325,1986,1410],{}," follow the database: case-sensitive on PostgreSQL, the collation of the column on MySQL (case-insensitive on the default ",[325,1989,1990],{},"_ci"," collations), and the case of ASCII letters only is ignored on SQLite.",[1175,1993,1994,1167,1996,1998,1999,2001,2002,2004,2005,2007],{},[325,1995,1413],{},[325,1997,1416],{}," ignore case. PostgreSQL runs ",[325,2000,1413],{},"; MySQL and SQLite run ",[325,2003,680],{},". On MySQL, ",[325,2006,1413],{}," stays case-sensitive on a column with a binary or case-sensitive collation.",[1009,2009,2011],{"id":2010},"groups","Groups",[313,2013,2014,2017,2018,1187],{},[325,2015,2016],{},"nested"," groups filters, which then combine among themselves first. The group itself takes a ",[325,2019,1170],{},[317,2021,2023],{"className":1015,"code":2022,"filename":1017,"language":1018,"meta":323,"style":323},"{\n  \"search\": {\n    \"filters\": [\n      {\"field\": \"status\", \"value\": \"published\"},\n      {\n        \"nested\": [\n          {\"field\": \"views\", \"operator\": \">\", \"value\": 1000},\n          {\"field\": \"featured\", \"value\": true, \"type\": \"or\"}\n        ]\n      }\n    ]\n  }\n}\n",[325,2024,2025,2029,2041,2053,2089,2094,2107,2158,2204,2209,2214,2218,2222],{"__ignoreMap":323},[328,2026,2027],{"class":330,"line":331},[328,2028,598],{"class":342},[328,2030,2031,2033,2035,2037,2039],{"class":330,"line":367},[328,2032,1029],{"class":342},[328,2034,1032],{"class":578},[328,2036,1035],{"class":342},[328,2038,1038],{"class":342},[328,2040,1041],{"class":342},[328,2042,2043,2045,2047,2049,2051],{"class":330,"line":391},[328,2044,1046],{"class":342},[328,2046,1049],{"class":614},[328,2048,1035],{"class":342},[328,2050,1038],{"class":342},[328,2052,608],{"class":342},[328,2054,2055,2057,2059,2061,2063,2065,2067,2069,2071,2073,2075,2077,2079,2081,2083,2085,2087],{"class":330,"line":413},[328,2056,1060],{"class":342},[328,2058,1035],{"class":342},[328,2060,1065],{"class":334},[328,2062,1035],{"class":342},[328,2064,1038],{"class":342},[328,2066,1072],{"class":342},[328,2068,763],{"class":630},[328,2070,1035],{"class":342},[328,2072,674],{"class":342},[328,2074,1072],{"class":342},[328,2076,1101],{"class":334},[328,2078,1035],{"class":342},[328,2080,1038],{"class":342},[328,2082,1072],{"class":342},[328,2084,1283],{"class":630},[328,2086,1035],{"class":342},[328,2088,1111],{"class":342},[328,2090,2091],{"class":330,"line":435},[328,2092,2093],{"class":342},"      {\n",[328,2095,2096,2099,2101,2103,2105],{"class":330,"line":457},[328,2097,2098],{"class":342},"        \"",[328,2100,2016],{"class":334},[328,2102,1035],{"class":342},[328,2104,1038],{"class":342},[328,2106,608],{"class":342},[328,2108,2109,2112,2114,2117,2119,2121,2123,2125,2127,2129,2131,2133,2135,2137,2139,2141,2143,2145,2147,2149,2151,2153,2156],{"class":330,"line":479},[328,2110,2111],{"class":342},"          {",[328,2113,1035],{"class":342},[328,2115,1065],{"class":2116},"swJcz",[328,2118,1035],{"class":342},[328,2120,1038],{"class":342},[328,2122,1072],{"class":342},[328,2124,805],{"class":630},[328,2126,1035],{"class":342},[328,2128,674],{"class":342},[328,2130,1072],{"class":342},[328,2132,1083],{"class":2116},[328,2134,1035],{"class":342},[328,2136,1038],{"class":342},[328,2138,1072],{"class":342},[328,2140,1092],{"class":630},[328,2142,1035],{"class":342},[328,2144,674],{"class":342},[328,2146,1072],{"class":342},[328,2148,1101],{"class":2116},[328,2150,1035],{"class":342},[328,2152,1038],{"class":342},[328,2154,2155],{"class":334}," 1000",[328,2157,1111],{"class":342},[328,2159,2160,2162,2164,2166,2168,2170,2172,2174,2176,2178,2180,2182,2184,2186,2188,2190,2192,2194,2196,2198,2200,2202],{"class":330,"line":501},[328,2161,2111],{"class":342},[328,2163,1035],{"class":342},[328,2165,1065],{"class":2116},[328,2167,1035],{"class":342},[328,2169,1038],{"class":342},[328,2171,1072],{"class":342},[328,2173,784],{"class":630},[328,2175,1035],{"class":342},[328,2177,674],{"class":342},[328,2179,1072],{"class":342},[328,2181,1101],{"class":2116},[328,2183,1035],{"class":342},[328,2185,1038],{"class":342},[328,2187,1318],{"class":342},[328,2189,1072],{"class":342},[328,2191,1170],{"class":2116},[328,2193,1035],{"class":342},[328,2195,1038],{"class":342},[328,2197,1072],{"class":342},[328,2199,1211],{"class":630},[328,2201,1035],{"class":342},[328,2203,842],{"class":342},[328,2205,2206],{"class":330,"line":524},[328,2207,2208],{"class":342},"        ]\n",[328,2210,2211],{"class":330,"line":546},[328,2212,2213],{"class":342},"      }\n",[328,2215,2216],{"class":330,"line":568},[328,2217,1147],{"class":342},[328,2219,2220],{"class":330,"line":575},[328,2221,1152],{"class":342},[328,2223,2224],{"class":330,"line":595},[328,2225,842],{"class":342},[1172,2227,2228,2246,2259],{},[1175,2229,2230,2231,1167,2233,2235,2236,1162,2238,1943,2240,2242,2243,2245],{},"A group holds ",[325,2232,2016],{},[325,2234,1170],{}," only: ",[325,2237,1065],{},[325,2239,1083],{},[325,2241,1101],{}," next to ",[325,2244,2016],{}," give a 422.",[1175,2247,2248,2251,2252,2254,2255,2258],{},[325,2249,2250],{},"rest.limits.depths.filters"," sets how many ",[325,2253,2016],{}," levels a search accepts, 1 by default. A deeper group gives ",[325,2256,2257],{},"The search.filters.0.nested.0.nested field is prohibited.",", and nothing below it is validated.",[1175,2260,2261,2262,2264,2265,2268,2269,2271],{},"Each ",[325,2263,2016],{}," list takes at most ",[325,2266,2267],{},"rest.limits.sizes.filters"," filters, like ",[325,2270,1049],{}," itself.",[1009,2273,2275],{"id":2274},"relation-paths","Relation paths",[313,2277,2278,2279,2281],{},"A dotted ",[325,2280,1065],{}," filters on a field of a related resource. It keeps the rows that have at least one related row matching the filter.",[317,2283,2285],{"className":1015,"code":2284,"filename":1017,"language":1018,"meta":323,"style":323},"{\n  \"search\": {\n    \"filters\": [\n      {\"field\": \"author.last_name\", \"value\": \"Lovelace\"},\n      {\"field\": \"comments.body\", \"operator\": \"like\", \"value\": \"%thanks%\"}\n    ]\n  }\n}\n",[325,2286,2287,2291,2303,2315,2352,2406,2410,2414],{"__ignoreMap":323},[328,2288,2289],{"class":330,"line":331},[328,2290,598],{"class":342},[328,2292,2293,2295,2297,2299,2301],{"class":330,"line":367},[328,2294,1029],{"class":342},[328,2296,1032],{"class":578},[328,2298,1035],{"class":342},[328,2300,1038],{"class":342},[328,2302,1041],{"class":342},[328,2304,2305,2307,2309,2311,2313],{"class":330,"line":391},[328,2306,1046],{"class":342},[328,2308,1049],{"class":614},[328,2310,1035],{"class":342},[328,2312,1038],{"class":342},[328,2314,608],{"class":342},[328,2316,2317,2319,2321,2323,2325,2327,2329,2331,2333,2335,2337,2339,2341,2343,2345,2348,2350],{"class":330,"line":413},[328,2318,1060],{"class":342},[328,2320,1035],{"class":342},[328,2322,1065],{"class":334},[328,2324,1035],{"class":342},[328,2326,1038],{"class":342},[328,2328,1072],{"class":342},[328,2330,1182],{"class":630},[328,2332,1035],{"class":342},[328,2334,674],{"class":342},[328,2336,1072],{"class":342},[328,2338,1101],{"class":334},[328,2340,1035],{"class":342},[328,2342,1038],{"class":342},[328,2344,1072],{"class":342},[328,2346,2347],{"class":630},"Lovelace",[328,2349,1035],{"class":342},[328,2351,1111],{"class":342},[328,2353,2354,2356,2358,2360,2362,2364,2366,2369,2371,2373,2375,2377,2379,2381,2383,2385,2387,2389,2391,2393,2395,2397,2399,2402,2404],{"class":330,"line":435},[328,2355,1060],{"class":342},[328,2357,1035],{"class":342},[328,2359,1065],{"class":334},[328,2361,1035],{"class":342},[328,2363,1038],{"class":342},[328,2365,1072],{"class":342},[328,2367,2368],{"class":630},"comments.body",[328,2370,1035],{"class":342},[328,2372,674],{"class":342},[328,2374,1072],{"class":342},[328,2376,1083],{"class":334},[328,2378,1035],{"class":342},[328,2380,1038],{"class":342},[328,2382,1072],{"class":342},[328,2384,680],{"class":630},[328,2386,1035],{"class":342},[328,2388,674],{"class":342},[328,2390,1072],{"class":342},[328,2392,1101],{"class":334},[328,2394,1035],{"class":342},[328,2396,1038],{"class":342},[328,2398,1072],{"class":342},[328,2400,2401],{"class":630},"%thanks%",[328,2403,1035],{"class":342},[328,2405,842],{"class":342},[328,2407,2408],{"class":330,"line":457},[328,2409,1147],{"class":342},[328,2411,2412],{"class":330,"line":479},[328,2413,1152],{"class":342},[328,2415,2416],{"class":330,"line":501},[328,2417,842],{"class":342},[1172,2419,2420,2433,2440,2450,2460],{},[1175,2421,2422,2423,2425,2426,2429,2430,2432],{},"The path is checked on the resource at its end: ",[325,2424,1182],{}," needs a filterable ",[325,2427,2428],{},"last_name"," field on the resource of the ",[325,2431,890],{}," relation.",[1175,2434,2435,2436,2439],{},"The ",[325,2437,2438],{},"perimeterQuery()"," of the resource of each relation of the path applies, each in its own group: a post matches only through an author that the perimeter of the authors keeps.",[1175,2441,2442,2443,2446,2447,1187],{},"Each resource of the path needs ",[325,2444,2445],{},"viewAny",", checked before validation. A denial answers ",[325,2448,2449],{},"403",[1175,2451,2452,2453,2456,2457],{},"A path goes through at most ",[325,2454,2455],{},"rest.limits.depths.includes"," relations, 3 by default: ",[325,2458,2459],{},"The search.filters.0.field field goes through more relations than the limit of 3.",[1175,2461,2462,2463,2466],{},"A field with ",[325,2464,2465],{},"filterUsing()"," runs its callback at the end of a path too.",[1809,2468,2470],{"id":2469},"pivot-fields","Pivot fields",[313,2472,1510,2473,2476,2477,1162,2479,1943,2482,2485],{},[325,2474,2475],{},"pivot"," segment reads a pivot field of a ",[325,2478,541],{},[325,2480,2481],{},"MorphToMany",[325,2483,2484],{},"MorphedByMany"," relation:",[317,2487,2489],{"className":1015,"code":2488,"language":1018,"meta":323,"style":323},"{\"field\": \"tags.pivot.weight\", \"operator\": \">=\", \"value\": 5}\n",[325,2490,2491],{"__ignoreMap":323},[328,2492,2493,2496,2498,2500,2502,2504,2506,2508,2510,2512,2514,2516,2518,2520,2522,2524,2526,2528,2530,2532,2534,2536,2539],{"class":330,"line":331},[328,2494,2495],{"class":342},"{",[328,2497,1035],{"class":342},[328,2499,1065],{"class":578},[328,2501,1035],{"class":342},[328,2503,1038],{"class":342},[328,2505,1072],{"class":342},[328,2507,1186],{"class":630},[328,2509,1035],{"class":342},[328,2511,674],{"class":342},[328,2513,1072],{"class":342},[328,2515,1083],{"class":578},[328,2517,1035],{"class":342},[328,2519,1038],{"class":342},[328,2521,1072],{"class":342},[328,2523,1440],{"class":630},[328,2525,1035],{"class":342},[328,2527,674],{"class":342},[328,2529,1072],{"class":342},[328,2531,1101],{"class":578},[328,2533,1035],{"class":342},[328,2535,1038],{"class":342},[328,2537,2538],{"class":334}," 5",[328,2540,842],{"class":342},[1172,2542,2543,2548,2566],{},[1175,2544,2545,2547],{},[325,2546,2475],{}," is accepted only right after a many-to-many relation and right before the last segment.",[1175,2549,2550,2551,1943,2554,2557,2558,2561,2562,2565],{},"The last segment must be a filterable pivot field of that relation: a ",[325,2552,2553],{},"writeOnly()",[325,2555,2556],{},"filterable(false)"," pivot field, or a ",[325,2559,2560],{},"selectable(false)"," one without ",[325,2563,2564],{},"filterable()",", gives a 422.",[1175,2567,2568],{},"The value is compared on the pivot table, morph pivot tables and the table of a pivot class included.",[1809,2570,2572],{"id":2571},"morphto-paths","MorphTo paths",[313,2574,2575,2576,2579,2580,2583,2584,2586,2587,1187],{},"A path through a ",[325,2577,2578],{},"MorphTo"," relation with one target, such as ",[325,2581,2582],{},"commentable.title",", reads the field on the target resource and only matches the rows whose morph type is the model of that resource. Rows of another type never match. Through a ",[325,2585,2578],{}," with several targets, a dotted path gives a 422: use a relation group with ",[325,2588,2589],{},"types",[1009,2591,2593],{"id":2592},"relation-groups","Relation groups",[313,2595,2596,2597,2600],{},"A filter that holds ",[325,2598,2599],{},"relation"," filters on the related rows of one relation, and applies all its filters to the same related row.",[317,2602,2605],{"className":1015,"code":2603,"filename":2604,"language":1018,"meta":323,"style":323},"{\n  \"search\": {\n    \"filters\": [\n      {\n        \"relation\": \"posts\",\n        \"nested\": [\n          {\"field\": \"status\", \"value\": \"published\"},\n          {\"field\": \"featured\", \"value\": true}\n        ]\n      },\n      {\"relation\": \"posts\", \"exists\": false, \"nested\": [{\"field\": \"status\", \"value\": \"draft\"}], \"type\": \"or\"}\n    ]\n  }\n}\n","POST \u002Fapi\u002Fauthors\u002Fsearch",[325,2606,2607,2611,2623,2635,2639,2659,2671,2707,2737,2741,2746,2839,2843,2847],{"__ignoreMap":323},[328,2608,2609],{"class":330,"line":331},[328,2610,598],{"class":342},[328,2612,2613,2615,2617,2619,2621],{"class":330,"line":367},[328,2614,1029],{"class":342},[328,2616,1032],{"class":578},[328,2618,1035],{"class":342},[328,2620,1038],{"class":342},[328,2622,1041],{"class":342},[328,2624,2625,2627,2629,2631,2633],{"class":330,"line":391},[328,2626,1046],{"class":342},[328,2628,1049],{"class":614},[328,2630,1035],{"class":342},[328,2632,1038],{"class":342},[328,2634,608],{"class":342},[328,2636,2637],{"class":330,"line":413},[328,2638,2093],{"class":342},[328,2640,2641,2643,2645,2647,2649,2651,2654,2656],{"class":330,"line":435},[328,2642,2098],{"class":342},[328,2644,2599],{"class":334},[328,2646,1035],{"class":342},[328,2648,1038],{"class":342},[328,2650,1072],{"class":342},[328,2652,2653],{"class":630},"posts",[328,2655,1035],{"class":342},[328,2657,2658],{"class":342},",\n",[328,2660,2661,2663,2665,2667,2669],{"class":330,"line":457},[328,2662,2098],{"class":342},[328,2664,2016],{"class":334},[328,2666,1035],{"class":342},[328,2668,1038],{"class":342},[328,2670,608],{"class":342},[328,2672,2673,2675,2677,2679,2681,2683,2685,2687,2689,2691,2693,2695,2697,2699,2701,2703,2705],{"class":330,"line":479},[328,2674,2111],{"class":342},[328,2676,1035],{"class":342},[328,2678,1065],{"class":2116},[328,2680,1035],{"class":342},[328,2682,1038],{"class":342},[328,2684,1072],{"class":342},[328,2686,763],{"class":630},[328,2688,1035],{"class":342},[328,2690,674],{"class":342},[328,2692,1072],{"class":342},[328,2694,1101],{"class":2116},[328,2696,1035],{"class":342},[328,2698,1038],{"class":342},[328,2700,1072],{"class":342},[328,2702,1283],{"class":630},[328,2704,1035],{"class":342},[328,2706,1111],{"class":342},[328,2708,2709,2711,2713,2715,2717,2719,2721,2723,2725,2727,2729,2731,2733,2735],{"class":330,"line":501},[328,2710,2111],{"class":342},[328,2712,1035],{"class":342},[328,2714,1065],{"class":2116},[328,2716,1035],{"class":342},[328,2718,1038],{"class":342},[328,2720,1072],{"class":342},[328,2722,784],{"class":630},[328,2724,1035],{"class":342},[328,2726,674],{"class":342},[328,2728,1072],{"class":342},[328,2730,1101],{"class":2116},[328,2732,1035],{"class":342},[328,2734,1038],{"class":342},[328,2736,1142],{"class":342},[328,2738,2739],{"class":330,"line":524},[328,2740,2208],{"class":342},[328,2742,2743],{"class":330,"line":546},[328,2744,2745],{"class":342},"      },\n",[328,2747,2748,2750,2752,2754,2756,2758,2760,2762,2764,2766,2768,2771,2773,2775,2778,2780,2782,2784,2786,2789,2791,2793,2795,2797,2799,2801,2803,2805,2807,2809,2811,2813,2815,2818,2820,2823,2825,2827,2829,2831,2833,2835,2837],{"class":330,"line":568},[328,2749,1060],{"class":342},[328,2751,1035],{"class":342},[328,2753,2599],{"class":334},[328,2755,1035],{"class":342},[328,2757,1038],{"class":342},[328,2759,1072],{"class":342},[328,2761,2653],{"class":630},[328,2763,1035],{"class":342},[328,2765,674],{"class":342},[328,2767,1072],{"class":342},[328,2769,2770],{"class":334},"exists",[328,2772,1035],{"class":342},[328,2774,1038],{"class":342},[328,2776,2777],{"class":342}," false,",[328,2779,1072],{"class":342},[328,2781,2016],{"class":334},[328,2783,1035],{"class":342},[328,2785,1038],{"class":342},[328,2787,2788],{"class":342}," [{",[328,2790,1035],{"class":342},[328,2792,1065],{"class":2116},[328,2794,1035],{"class":342},[328,2796,1038],{"class":342},[328,2798,1072],{"class":342},[328,2800,763],{"class":630},[328,2802,1035],{"class":342},[328,2804,674],{"class":342},[328,2806,1072],{"class":342},[328,2808,1101],{"class":2116},[328,2810,1035],{"class":342},[328,2812,1038],{"class":342},[328,2814,1072],{"class":342},[328,2816,2817],{"class":630},"draft",[328,2819,1035],{"class":342},[328,2821,2822],{"class":342},"}],",[328,2824,1072],{"class":342},[328,2826,1170],{"class":334},[328,2828,1035],{"class":342},[328,2830,1038],{"class":342},[328,2832,1072],{"class":342},[328,2834,1211],{"class":630},[328,2836,1035],{"class":342},[328,2838,842],{"class":342},[328,2840,2841],{"class":330,"line":575},[328,2842,1147],{"class":342},[328,2844,2845],{"class":330,"line":595},[328,2846,1152],{"class":342},[328,2848,2849],{"class":330,"line":601},[328,2850,842],{"class":342},[313,2852,2853,2854,1167,2857,2860],{},"The first group keeps the authors with one post that is both published and featured. Two dotted filters, ",[325,2855,2856],{},"posts.status",[325,2858,2859],{},"posts.featured",", could match two different posts.",[1172,2862,2863,2880,2899,2913,2927,2941,2962,2976,2983],{},[1175,2864,2865,2866,1162,2868,1162,2870,1167,2872,2874,2875,2877,2878,1187],{},"The keys are ",[325,2867,2599],{},[325,2869,2770],{},[325,2871,1170],{},[325,2873,2016],{},", and ",[325,2876,2589],{}," on a ",[325,2879,2578],{},[1175,2881,2882,2883,2885,2886,2889,2890,2892,2893,2885,2895,2898],{},"With ",[325,2884,2770],{}," ",[325,2887,2888],{},"true",", the default, the group keeps the rows that have at least one related row matching every filter of ",[325,2891,2016],{},". With ",[325,2894,2770],{},[325,2896,2897],{},"false",", it keeps the rows that have none.",[1175,2900,2901,2902,2904,2905,2908,2909,2912],{},"Without ",[325,2903,2016],{},", or with ",[325,2906,2907],{},"[]",", any related row counts: ",[325,2910,2911],{},"{\"relation\": \"posts\", \"exists\": false}"," keeps the authors without posts.",[1175,2914,2915,2917,2918,2920,2921,2923,2924,2926],{},[325,2916,2016],{}," takes the fields of the related resource, with their operators and values, ",[325,2919,1170],{},", groups, relation paths and relation groups. A relation group inside ",[325,2922,2016],{}," needs ",[325,2925,2250],{}," at 2 or more.",[1175,2928,2929,2931,2932,2935,2936,1540,2938,1187],{},[325,2930,2599],{}," names one relation of the resource. A dotted path gives ",[325,2933,2934],{},"The selected search.filters.0.relation is invalid.",": reach a deeper relation with a path in ",[325,2937,2016],{},[325,2939,2940],{},"{\"relation\": \"posts\", \"nested\": [{\"field\": \"comments.body\", \"value\": \"Thanks\"}]}",[1175,2942,2943,1204,2945,1943,2947,2949,2950,1162,2953,1167,2956,2958,2959],{},[325,2944,2770],{},[325,2946,2888],{},[325,2948,2897],{},". Another value, ",[325,2951,2952],{},"1",[325,2954,2955],{},"0",[325,2957,1939],{}," included, gives ",[325,2960,2961],{},"The search.filters.0.exists field must be true or false.",[1175,2963,2964,1162,2966,1943,2968,2242,2970,2972,2973],{},[325,2965,1065],{},[325,2967,1083],{},[325,2969,1101],{},[325,2971,2599],{}," give ",[325,2974,2975],{},"The search.filters.0.field field is prohibited.",[1175,2977,2435,2978,2980,2981,1187],{},[325,2979,2438],{}," of the related resource applies in its own group, and the related resource needs ",[325,2982,2445],{},[1175,2984,2985,2986,2988,2989,1187],{},"On a many-to-many relation, ",[325,2987,2016],{}," takes the fields of the related resource. A pivot field there gives a 422: filter it with a path from the resource that declares the relation, ",[325,2990,1186],{},[1809,2992,2994],{"id":2993},"morphto-groups","MorphTo groups",[313,2996,2997,2998,3000,3001,3003],{},"On a ",[325,2999,2578],{},", the group takes ",[325,3002,2589],{},", one list of filters for each morph type:",[317,3005,3007],{"className":1015,"code":3006,"language":1018,"meta":323,"style":323},"{\"relation\": \"labelable\", \"types\": {\"book\": [{\"field\": \"title\", \"value\": \"Dune\"}], \"shelf\": []}}\n",[325,3008,3009],{"__ignoreMap":323},[328,3010,3011,3013,3015,3017,3019,3021,3023,3026,3028,3030,3032,3034,3036,3038,3041,3043,3046,3048,3050,3052,3054,3056,3058,3060,3062,3064,3066,3068,3070,3072,3074,3076,3078,3081,3083,3085,3087,3090,3092,3094],{"class":330,"line":331},[328,3012,2495],{"class":342},[328,3014,1035],{"class":342},[328,3016,2599],{"class":578},[328,3018,1035],{"class":342},[328,3020,1038],{"class":342},[328,3022,1072],{"class":342},[328,3024,3025],{"class":630},"labelable",[328,3027,1035],{"class":342},[328,3029,674],{"class":342},[328,3031,1072],{"class":342},[328,3033,2589],{"class":578},[328,3035,1035],{"class":342},[328,3037,1038],{"class":342},[328,3039,3040],{"class":342}," {",[328,3042,1035],{"class":342},[328,3044,3045],{"class":614},"book",[328,3047,1035],{"class":342},[328,3049,1038],{"class":342},[328,3051,2788],{"class":342},[328,3053,1035],{"class":342},[328,3055,1065],{"class":334},[328,3057,1035],{"class":342},[328,3059,1038],{"class":342},[328,3061,1072],{"class":342},[328,3063,653],{"class":630},[328,3065,1035],{"class":342},[328,3067,674],{"class":342},[328,3069,1072],{"class":342},[328,3071,1101],{"class":334},[328,3073,1035],{"class":342},[328,3075,1038],{"class":342},[328,3077,1072],{"class":342},[328,3079,3080],{"class":630},"Dune",[328,3082,1035],{"class":342},[328,3084,2822],{"class":342},[328,3086,1072],{"class":342},[328,3088,3089],{"class":614},"shelf",[328,3091,1035],{"class":342},[328,3093,1038],{"class":342},[328,3095,3096],{"class":342}," []}}\n",[1172,3098,3099,3102,3107,3115,3130],{},[1175,3100,3101],{},"The group keeps the rows whose target is a book titled Dune, or any shelf. An empty list means any target of that type.",[1175,3103,2901,3104,3106],{},[325,3105,2589],{},", any target of a declared type counts.",[1175,3108,3109,3110,3112,3113,1187],{},"Each type applies its fields and its ",[325,3111,2438],{},", and needs ",[325,3114,2445],{},[1175,3116,3117,3118,3120,3121,3124,3125,3127,3128,1187],{},"With several targets, ",[325,3119,2016],{}," gives ",[325,3122,3123],{},"The search.filters.0.nested field is prohibited: this relation has several types. Set it for each type, under types."," With one target, ",[325,3126,2016],{}," works, but not together with ",[325,3129,2589],{},[1175,3131,2882,3132,2885,3134,3136],{},[325,3133,2770],{},[325,3135,2897],{},", the group keeps the rows of other types, of a type that is not a target, and without a type.",[1009,3138,3140],{"id":3139},"custom-filters","Custom filters",[313,3142,3143,3145,3146,1943,3149,3151],{},[325,3144,2465],{}," filters a field with a callback instead of its column. A ",[325,3147,3148],{},"virtual()",[325,3150,2553],{}," field becomes filterable with it.",[317,3153,3155],{"className":319,"code":3154,"language":322,"meta":323,"style":323},"use Illuminate\\Contracts\\Database\\Eloquent\\Builder;\n\nText::make('full_name')\n    ->virtual()\n    ->filterable(['=', 'like'])\n    ->filterUsing(fn (Builder $query, string $operator, mixed $value) => $query\n        ->where('first_name', $operator, $value)\n        ->orWhere('last_name', $operator, $value)),\n",[325,3156,3157,3181,3185,3205,3216,3241,3293,3324],{"__ignoreMap":323},[328,3158,3159,3161,3163,3165,3167,3169,3171,3173,3175,3177,3179],{"class":330,"line":331},[328,3160,335],{"class":334},[328,3162,339],{"class":338},[328,3164,343],{"class":342},[328,3166,346],{"class":338},[328,3168,343],{"class":342},[328,3170,351],{"class":338},[328,3172,343],{"class":342},[328,3174,356],{"class":338},[328,3176,343],{"class":342},[328,3178,361],{"class":338},[328,3180,364],{"class":342},[328,3182,3183],{"class":330,"line":367},[328,3184,572],{"emptyLinePlaceholder":571},[328,3186,3187,3189,3191,3193,3195,3197,3200,3202],{"class":330,"line":391},[328,3188,496],{"class":614},[328,3190,618],{"class":342},[328,3192,621],{"class":585},[328,3194,624],{"class":342},[328,3196,627],{"class":342},[328,3198,3199],{"class":630},"full_name",[328,3201,627],{"class":342},[328,3203,3204],{"class":342},")\n",[328,3206,3207,3210,3213],{"class":330,"line":413},[328,3208,3209],{"class":342},"    ->",[328,3211,3212],{"class":585},"virtual",[328,3214,3215],{"class":342},"()\n",[328,3217,3218,3220,3222,3224,3226,3228,3230,3232,3234,3236,3238],{"class":330,"line":435},[328,3219,3209],{"class":342},[328,3221,661],{"class":585},[328,3223,664],{"class":342},[328,3225,627],{"class":342},[328,3227,669],{"class":630},[328,3229,627],{"class":342},[328,3231,674],{"class":342},[328,3233,677],{"class":342},[328,3235,680],{"class":630},[328,3237,627],{"class":342},[328,3239,3240],{"class":342},"])\n",[328,3242,3243,3245,3248,3250,3253,3256,3258,3261,3264,3266,3269,3271,3273,3275,3278,3280,3282,3285,3288,3290],{"class":330,"line":457},[328,3244,3209],{"class":342},[328,3246,3247],{"class":585},"filterUsing",[328,3249,624],{"class":342},[328,3251,3252],{"class":578},"fn",[328,3254,3255],{"class":342}," (",[328,3257,361],{"class":614},[328,3259,3260],{"class":342}," $",[328,3262,3263],{"class":338},"query",[328,3265,674],{"class":342},[328,3267,3268],{"class":334}," string",[328,3270,3260],{"class":342},[328,3272,1083],{"class":338},[328,3274,674],{"class":342},[328,3276,3277],{"class":334}," mixed",[328,3279,3260],{"class":342},[328,3281,1101],{"class":338},[328,3283,3284],{"class":342},")",[328,3286,3287],{"class":342}," =>",[328,3289,3260],{"class":342},[328,3291,3292],{"class":338},"query\n",[328,3294,3295,3298,3301,3303,3305,3308,3310,3312,3314,3316,3318,3320,3322],{"class":330,"line":479},[328,3296,3297],{"class":342},"        ->",[328,3299,3300],{"class":585},"where",[328,3302,624],{"class":342},[328,3304,627],{"class":342},[328,3306,3307],{"class":630},"first_name",[328,3309,627],{"class":342},[328,3311,674],{"class":342},[328,3313,3260],{"class":342},[328,3315,1083],{"class":338},[328,3317,674],{"class":342},[328,3319,3260],{"class":342},[328,3321,1101],{"class":338},[328,3323,3204],{"class":342},[328,3325,3326,3328,3331,3333,3335,3337,3339,3341,3343,3345,3347,3349,3351],{"class":330,"line":501},[328,3327,3297],{"class":342},[328,3329,3330],{"class":585},"orWhere",[328,3332,624],{"class":342},[328,3334,627],{"class":342},[328,3336,2428],{"class":630},[328,3338,627],{"class":342},[328,3340,674],{"class":342},[328,3342,3260],{"class":342},[328,3344,1083],{"class":338},[328,3346,674],{"class":342},[328,3348,3260],{"class":342},[328,3350,1101],{"class":338},[328,3352,3353],{"class":342},")),\n",[1172,3355,3356,3362,3369],{},[1175,3357,3358,3359,1187],{},"The callback receives the Eloquent query, the operator as a string and the value as sent. It can also be an object that implements ",[325,3360,3361],{},"Lomkit\\Rest\\Contracts\\Filter",[1175,3363,3364,3365,3368],{},"Its conditions stay in their own group: an ",[325,3366,3367],{},"orWhere()"," in it does not leave the filter.",[1175,3370,3371],{},"The other fields are compared on their column, qualified with the table of the model.",[1009,3373,3375],{"id":3374},"fields-that-filters-refuse","Fields that filters refuse",[313,3377,3378,3380,3381,1038],{},[325,3379,1049],{}," accepts the filterable fields only. These fields give ",[325,3382,3383],{},"The selected search.filters.0.field is invalid.",[1172,3385,3386,3389,3395,3401,3410],{},[1175,3387,3388],{},"an undeclared field;",[1175,3390,3391,3392,3394],{},"a ",[325,3393,1502],{}," field;",[1175,3396,3397,3398,3400],{},"a field declared ",[325,3399,2556],{},";",[1175,3402,3391,3403,1943,3405,3407,3408,3400],{},[325,3404,3148],{},[325,3406,2553],{}," field without ",[325,3409,2465],{},[1175,3411,3397,3412,3414,3415,1187],{},[325,3413,2560],{}," without ",[325,3416,2564],{},[1009,3418,58],{"id":3419},"limits",[1355,3421,3422,3435],{},[1358,3423,3424],{},[1361,3425,3426,3429,3432],{},[1364,3427,3428],{},"Limit",[1364,3430,3431],{},"Default",[1364,3433,3434],{},"Counts",[1370,3436,3437,3457,3470,3483,3502,3523,3535,3556],{},[1361,3438,3439,3443,3445],{},[1375,3440,3441],{},[325,3442,2267],{},[1375,3444,1688],{},[1375,3446,3447,3448,3450,3451,3453,3454,3456],{},"The entries of ",[325,3449,1049],{},", of each ",[325,3452,2016],{}," list, and of the ",[325,3455,1049],{}," of includes and aggregates",[1361,3458,3459,3464,3467],{},[1375,3460,3461],{},[325,3462,3463],{},"rest.limits.totals.filters",[1375,3465,3466],{},"500",[1375,3468,3469],{},"Every filter of one search, at every depth, in its includes and aggregates",[1361,3471,3472,3477,3480],{},[1375,3473,3474],{},[325,3475,3476],{},"rest.limits.totals.relations",[1375,3478,3479],{},"20",[1375,3481,3482],{},"The relation filters of one search: each dotted path and each relation group runs a subquery",[1361,3484,3485,3489,3491],{},[1375,3486,3487],{},[325,3488,1904],{},[1375,3490,1688],{},[1375,3492,3493,3494,1162,3496,1162,3498,1167,3500],{},"The values of ",[325,3495,1390],{},[325,3497,1393],{},[325,3499,1449],{},[325,3501,1452],{},[1361,3503,3504,3509,3512],{},[1375,3505,3506],{},[325,3507,3508],{},"rest.limits.totals.patterns",[1375,3510,3511],{},"10",[1375,3513,2435,3514,1162,3516,1162,3518,1167,3520,3522],{},[325,3515,680],{},[325,3517,1410],{},[325,3519,1413],{},[325,3521,1416],{}," filters of one search, at every depth, in its includes and aggregates",[1361,3524,3525,3529,3532],{},[1375,3526,3527],{},[325,3528,1889],{},[1375,3530,3531],{},"1000",[1375,3533,3534],{},"The characters of a string value, and of each string of a list",[1361,3536,3537,3541,3544],{},[1375,3538,3539],{},[325,3540,1885],{},[1375,3542,3543],{},"255",[1375,3545,3546,3547,1162,3549,1162,3551,1943,3553,3555],{},"The characters of a ",[325,3548,680],{},[325,3550,1410],{},[325,3552,1413],{},[325,3554,1416],{}," value",[1361,3557,3558,3562,3564],{},[1375,3559,3560],{},[325,3561,2250],{},[1375,3563,2952],{},[1375,3565,3566,3567],{},"The levels of ",[325,3568,2016],{},[313,3570,3571],{},"A list over its limit gives a 422 on its own key, and nothing under it is validated:",[317,3573,3576],{"className":1015,"code":3574,"filename":3575,"language":1018,"meta":323,"style":323},"{\n  \"message\": \"The search.filters field goes over the limit of 20 relation filters in one search.\",\n  \"errors\": {\n    \"search.filters\": [\"The search.filters field goes over the limit of 20 relation filters in one search.\"]\n  }\n}\n","422 Unprocessable Content",[325,3577,3578,3582,3602,3615,3637,3641],{"__ignoreMap":323},[328,3579,3580],{"class":330,"line":331},[328,3581,598],{"class":342},[328,3583,3584,3586,3589,3591,3593,3595,3598,3600],{"class":330,"line":367},[328,3585,1029],{"class":342},[328,3587,3588],{"class":578},"message",[328,3590,1035],{"class":342},[328,3592,1038],{"class":342},[328,3594,1072],{"class":342},[328,3596,3597],{"class":630},"The search.filters field goes over the limit of 20 relation filters in one search.",[328,3599,1035],{"class":342},[328,3601,2658],{"class":342},[328,3603,3604,3606,3609,3611,3613],{"class":330,"line":391},[328,3605,1029],{"class":342},[328,3607,3608],{"class":578},"errors",[328,3610,1035],{"class":342},[328,3612,1038],{"class":342},[328,3614,1041],{"class":342},[328,3616,3617,3619,3622,3624,3626,3628,3630,3632,3634],{"class":330,"line":413},[328,3618,1046],{"class":342},[328,3620,3621],{"class":614},"search.filters",[328,3623,1035],{"class":342},[328,3625,1038],{"class":342},[328,3627,1685],{"class":342},[328,3629,1035],{"class":342},[328,3631,3597],{"class":630},[328,3633,1035],{"class":342},[328,3635,3636],{"class":342},"]\n",[328,3638,3639],{"class":330,"line":435},[328,3640,1152],{"class":342},[328,3642,3643],{"class":330,"line":457},[328,3644,842],{"class":342},[1009,3646,3647],{"id":3608},"Errors",[1355,3649,3650,3660],{},[1358,3651,3652],{},[1361,3653,3654,3657],{},[1364,3655,3656],{},"Message",[1364,3658,3659],{},"Key",[1370,3661,3662,3671,3681,3693,3706,3718,3730,3744,3755,3767,3777],{},[1361,3663,3664,3668],{},[1375,3665,3666],{},[325,3667,3383],{},[1375,3669,3670],{},"A field that filters refuse",[1361,3672,3673,3678],{},[1375,3674,3675],{},[325,3676,3677],{},"The selected search.filters.0.operator is invalid.",[1375,3679,3680],{},"An operator that the field does not accept",[1361,3682,3683,3688],{},[1375,3684,3685],{},[325,3686,3687],{},"The search.filters.0.operator field is required.",[1375,3689,3690,3691],{},"No operator on a field that does not accept ",[325,3692,669],{},[1361,3694,3695,3700],{},[1375,3696,3697],{},[325,3698,3699],{},"The search.filters.0.value field must be an integer.",[1375,3701,3702,3703,3705],{},"A value of the wrong type, here on an ",[325,3704,474],{}," field",[1361,3707,3708,3713],{},[1375,3709,3710],{},[325,3711,3712],{},"The search.filters.0.value field must contain 2 items.",[1375,3714,3715,3717],{},[325,3716,1449],{}," without exactly two values",[1361,3719,3720,3725],{},[1375,3721,3722],{},[325,3723,3724],{},"The search.filters.0.value field must have at least 1 items.",[1375,3726,3727,3729],{},[325,3728,1390],{}," with an empty list",[1361,3731,3732,3737],{},[1375,3733,3734],{},[325,3735,3736],{},"The search.filters.0.value field is prohibited.",[1375,3738,3739,3740,1943,3742],{},"A value next to ",[325,3741,1517],{},[325,3743,1520],{},[1361,3745,3746,3750],{},[1375,3747,3748],{},[325,3749,1968],{},[1375,3751,3752,3753],{},"A string value over ",[325,3754,1889],{},[1361,3756,3757,3762],{},[1375,3758,3759],{},[325,3760,3761],{},"The search.filters field goes over the limit of 10 pattern filters in one search.",[1375,3763,3764,3765],{},"More pattern filters than ",[325,3766,3508],{},[1361,3768,3769,3774],{},[1375,3770,3771],{},[325,3772,3773],{},"The search.filters.0.operater field is prohibited.",[1375,3775,3776],{},"A key that a filter does not take",[1361,3778,3779,3784],{},[1375,3780,3781],{},[325,3782,3783],{},"The search.filters.0.field field must be a string.",[1375,3785,1510,3786,3788],{},[325,3787,1065],{}," that is not a string",[313,3790,3791,3792,1187],{},"Next to a text search on a search engine, filters follow the declaration of the engine instead, see ",[3793,3794,92],"a",{"href":3795},"\u002Fsearch\u002Fsearch-engines#filters-and-sorts",[3797,3798,3799],"style",{},"html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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}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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":323,"searchDepth":331,"depth":367,"links":3801},[3802,3803,3807,3808,3812,3815,3816,3817,3818],{"id":1011,"depth":367,"text":1012},{"id":1349,"depth":367,"text":1350,"children":3804},[3805,3806],{"id":1811,"depth":391,"text":1812},{"id":1977,"depth":391,"text":1978},{"id":2010,"depth":367,"text":2011},{"id":2274,"depth":367,"text":2275,"children":3809},[3810,3811],{"id":2469,"depth":391,"text":2470},{"id":2571,"depth":391,"text":2572},{"id":2592,"depth":367,"text":2593,"children":3813},[3814],{"id":2993,"depth":391,"text":2994},{"id":3139,"depth":367,"text":3140},{"id":3374,"depth":367,"text":3375},{"id":3419,"depth":367,"text":58},{"id":3608,"depth":367,"text":3647},"Keep the rows that match conditions on fields, relation paths, pivot fields and related rows, with the operators that each field type accepts.","md",null,{},{"title":72,"description":3819},{"loc":73},"JeoPV1QlGdlMGbMPxdlv46ztim8sX7uDCNgx08VLqLE",[3827,3829],{"title":68,"path":69,"stem":70,"description":3828,"children":-1},"The search endpoint reads the rows of a resource with filters, sorts, includes, aggregates and pagination, inside the perimeter of the user.",{"title":76,"path":77,"stem":78,"description":3830,"children":-1},"Order search rows by fields, to-one relation fields, aggregates or relevance, and choose the fields that each row returns.",1794181354434]