[{"data":1,"prerenderedAt":430},["ShallowReactive",2],{"navigation-zh":3,"navigation-v1":81,"\u002Fzh\u002Fscreencasts":146,"\u002Fzh\u002Fscreencasts-surround":298,"\u002Fzh\u002Fscreencasts-og":301},[4,55,77],{"title":5,"path":6,"stem":7,"children":8},"指南","\u002Fzh\u002Fguide","zh\u002F1.guide\u002F01.index",[9,11,15,19,23,27,31,35,39,43,47,51],{"title":10,"path":6,"stem":7},"介绍",{"title":12,"path":13,"stem":14},"序言","\u002Fzh\u002Fguide\u002Fprologue","zh\u002F1.guide\u002F00.prologue",{"title":16,"path":17,"stem":18},"快速上手","\u002Fzh\u002Fguide\u002Fgetting-started","zh\u002F1.guide\u002F02.getting-started",{"title":20,"path":21,"stem":22},"模型","\u002Fzh\u002Fguide\u002Fmodels","zh\u002F1.guide\u002F03.models",{"title":24,"path":25,"stem":26},"关联","\u002Fzh\u002Fguide\u002Frelationships","zh\u002F1.guide\u002F04.relationships",{"title":28,"path":29,"stem":30},"钩子","\u002Fzh\u002Fguide\u002Fhooks","zh\u002F1.guide\u002F05.hooks",{"title":32,"path":33,"stem":34},"搜索","\u002Fzh\u002Fguide\u002Fsearch","zh\u002F1.guide\u002F06.search",{"title":36,"path":37,"stem":38},"批量操作","\u002Fzh\u002Fguide\u002Fbatch-operations","zh\u002F1.guide\u002F07.batch-operations",{"title":40,"path":41,"stem":42},"查询参数","\u002Fzh\u002Fguide\u002Fquery-parameters","zh\u002F1.guide\u002F08.query-parameters",{"title":44,"path":45,"stem":46},"安全","\u002Fzh\u002Fguide\u002Fsecurity","zh\u002F1.guide\u002F09.security",{"title":48,"path":49,"stem":50},"响应","\u002Fzh\u002Fguide\u002Fresponses","zh\u002F1.guide\u002F10.responses",{"title":52,"path":53,"stem":54},"规范","\u002Fzh\u002Fguide\u002Fspecifications","zh\u002F1.guide\u002F11.specifications",{"title":56,"path":57,"stem":58,"children":59},"TypeScript SDK","\u002Fzh\u002Ftypescript-sdk","zh\u002F2.typescript-sdk\u002F01.index",[60,61,64,68,71,74],{"title":10,"path":57,"stem":58},{"title":16,"path":62,"stem":63},"\u002Fzh\u002Ftypescript-sdk\u002Fgetting-started","zh\u002F2.typescript-sdk\u002F02.getting-started",{"title":65,"path":66,"stem":67},"配置","\u002Fzh\u002Ftypescript-sdk\u002Fconfiguration","zh\u002F2.typescript-sdk\u002F03.configuration",{"title":20,"path":69,"stem":70},"\u002Fzh\u002Ftypescript-sdk\u002Fmodels","zh\u002F2.typescript-sdk\u002F04.models",{"title":24,"path":72,"stem":73},"\u002Fzh\u002Ftypescript-sdk\u002Frelationships","zh\u002F2.typescript-sdk\u002F05.relationships",{"title":40,"path":75,"stem":76},"\u002Fzh\u002Ftypescript-sdk\u002Fquery-parameters","zh\u002F2.typescript-sdk\u002F06.query-parameters",{"title":78,"path":79,"stem":80},"视频教程","\u002Fzh\u002Fscreencasts","zh\u002Fscreencasts",[82,125],{"title":83,"path":84,"stem":85,"children":86},"Guide","\u002Fv1.x\u002Fguide","v1.x\u002F1.guide\u002F01.index",[87,89,93,97,101,105,109,113,117,121],{"title":88,"path":84,"stem":85},"Introduction",{"title":90,"path":91,"stem":92},"Getting Started","\u002Fv1.x\u002Fguide\u002Fgetting-started","v1.x\u002F1.guide\u002F02.getting-started",{"title":94,"path":95,"stem":96},"Models","\u002Fv1.x\u002Fguide\u002Fmodels","v1.x\u002F1.guide\u002F03.models",{"title":98,"path":99,"stem":100},"Relationships","\u002Fv1.x\u002Fguide\u002Frelationships","v1.x\u002F1.guide\u002F04.relationships",{"title":102,"path":103,"stem":104},"Hooks","\u002Fv1.x\u002Fguide\u002Fhooks","v1.x\u002F1.guide\u002F05.hooks",{"title":106,"path":107,"stem":108},"Search","\u002Fv1.x\u002Fguide\u002Fsearch","v1.x\u002F1.guide\u002F06.search",{"title":110,"path":111,"stem":112},"Batch Operations","\u002Fv1.x\u002Fguide\u002Fbatch-operations","v1.x\u002F1.guide\u002F07.batch-operations",{"title":114,"path":115,"stem":116},"Query Parameters","\u002Fv1.x\u002Fguide\u002Fquery-parameters","v1.x\u002F1.guide\u002F08.query-parameters",{"title":118,"path":119,"stem":120},"Security","\u002Fv1.x\u002Fguide\u002Fsecurity","v1.x\u002F1.guide\u002F09.security",{"title":122,"path":123,"stem":124},"Responses","\u002Fv1.x\u002Fguide\u002Fresponses","v1.x\u002F1.guide\u002F10.responses",{"title":56,"path":126,"stem":127,"children":128},"\u002Fv1.x\u002Ftypescript-sdk","v1.x\u002F2.typescript-sdk\u002F01.index",[129,130,133,137,140,143],{"title":88,"path":126,"stem":127},{"title":90,"path":131,"stem":132},"\u002Fv1.x\u002Ftypescript-sdk\u002Fgetting-started","v1.x\u002F2.typescript-sdk\u002F02.getting-started",{"title":134,"path":135,"stem":136},"Configuration","\u002Fv1.x\u002Ftypescript-sdk\u002Fconfiguration","v1.x\u002F2.typescript-sdk\u002F03.configuration",{"title":94,"path":138,"stem":139},"\u002Fv1.x\u002Ftypescript-sdk\u002Fmodels","v1.x\u002F2.typescript-sdk\u002F04.models",{"title":98,"path":141,"stem":142},"\u002Fv1.x\u002Ftypescript-sdk\u002Frelationships","v1.x\u002F2.typescript-sdk\u002F05.relationships",{"title":114,"path":144,"stem":145},"\u002Fv1.x\u002Ftypescript-sdk\u002Fquery-parameters","v1.x\u002F2.typescript-sdk\u002F06.query-parameters",{"id":147,"title":78,"body":148,"description":292,"extension":293,"links":294,"meta":295,"navigation":182,"path":79,"seo":296,"stem":80,"__hash__":297},"docs_zh\u002Fzh\u002Fscreencasts.md",{"type":149,"value":150,"toc":277},"minimark",[151,162,168,171,174,183,187,190,193,196,199,202,206,216,219,223,226,229,233,236,239,243,246,249,252,255,258,262,265,268,271,274],[152,153,154,161],"p",{},[155,156,160],"a",{"href":157,"rel":158},"https:\u002F\u002Ftwitter.com\u002FLukeDiebold",[159],"nofollow","@Luke Diebold"," 正在制作一系列视频教程，涵盖 Orion for Laravel 的众多功能。非常感谢他为此付出的努力。",[152,163,164],{},[165,166,167],"em",{},"注意：该系列仍在持续更新中，新的剧集一经发布就会添加到这里。",[169,170,10],"h2",{"id":10},[152,172,173],{},"Orion for Laravel 是什么？它能做什么？让我们在这期系列开篇视频中一探究竟。",[175,176],"iframe",{"width":177,"height":178,"src":179,"frameBorder":180,"allow":181,"allowFullScreen":182},560,315,"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fx3h6HwQNN38","0","accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",true,[169,184,186],{"id":185},"项目搭建与基础-crud","项目搭建与基础 CRUD",[152,188,189],{},"在本期视频中，Luke 将带你完成项目搭建、Sanctum 配置，并构建你的第一个用于管理 Post 模型的 REST API。",[175,191],{"width":177,"height":178,"src":192,"frameBorder":180,"allow":181,"allowFullScreen":182},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FeVvxLvkeXUM",[169,194,195],{"id":195},"准备迁移与模型",[152,197,198],{},"在深入搜索功能之前，我们需要先准备好模型和迁移。本期视频涵盖所有必要步骤，为探索 Orion 的搜索能力做好准备。",[175,200],{"width":177,"height":178,"src":201,"frameBorder":180,"allow":181,"allowFullScreen":182},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FcqnhEHu9qJg",[169,203,205],{"id":204},"搜索关键词搜索","搜索——关键词搜索",[152,207,208,209,215],{},"关键词搜索是可用的搜索方式之一。它允许你在指定属性中的",[165,210,211],{},[212,213,214],"strong",{},"任意","一个里查找与给定关键词匹配的模型，类似于常见搜索栏的行为。",[175,217],{"width":177,"height":178,"src":218,"frameBorder":180,"allow":181,"allowFullScreen":182},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fq6ZPW8iw4ks",[169,220,222],{"id":221},"搜索过滤","搜索——过滤",[152,224,225],{},"另一种搜索模型的方式是使用过滤。你可以把它理解为在前端编写 Eloquent 查询。",[175,227],{"width":177,"height":178,"src":228,"frameBorder":180,"allow":181,"allowFullScreen":182},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FIrvQCB7FMUk",[169,230,232],{"id":231},"搜索排序","搜索——排序",[152,234,235],{},"执行搜索查询时，你还可以对结果进行排序。让我们来看看如何实现。",[175,237],{"width":177,"height":178,"src":238,"frameBorder":180,"allow":181,"allowFullScreen":182},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FPibHcj3EwlQ",[169,240,242],{"id":241},"搜索作用域","搜索——作用域",[152,244,245],{},"在进行查找时，你可以更进一步，利用作用域让 API 更简洁、更易维护。",[175,247],{"width":177,"height":178,"src":248,"frameBorder":180,"allow":181,"allowFullScreen":182},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fdxo6ZYF8B0Y",[169,250,251],{"id":251},"分页",[152,253,254],{},"在本期视频中，Luke 将带你了解分页元数据，以及如何利用它在前端构建分页链接。",[175,256],{"width":177,"height":178,"src":257,"frameBorder":180,"allow":181,"allowFullScreen":182},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F6_Akr_ldKCQ",[169,259,261],{"id":260},"软删除laravel","软删除（Laravel）",[152,263,264],{},"在深入 Orion for Laravel 特有的软删除功能之前，让我们先回顾一下 Laravel 本身的软删除是如何工作的。",[175,266],{"width":177,"height":178,"src":267,"frameBorder":180,"allow":181,"allowFullScreen":182},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F548pfXfgQWk",[169,269,270],{"id":270},"软删除",[152,272,273],{},"现在，我们已经清楚了解软删除在 Laravel 中的工作方式，接下来可以探索通过 API 操作软删除的各种可用选项。",[175,275],{"width":177,"height":178,"src":276,"frameBorder":180,"allow":181,"allowFullScreen":182},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FzTQPbcx353Q",{"title":278,"searchDepth":279,"depth":280,"links":281},"",1,2,[282,283,284,285,286,287,288,289,290,291],{"id":10,"depth":280,"text":10},{"id":185,"depth":280,"text":186},{"id":195,"depth":280,"text":195},{"id":204,"depth":280,"text":205},{"id":221,"depth":280,"text":222},{"id":231,"depth":280,"text":232},{"id":241,"depth":280,"text":242},{"id":251,"depth":280,"text":251},{"id":260,"depth":280,"text":261},{"id":270,"depth":280,"text":270},"通过一系列视频教程探索 Orion for Laravel 的功能。","md",null,{},{"title":78,"description":292},"8FahqdowLKy4BFOdfEnX0ZcbbHAx1ljMmCtvE1CFL2c",[299,294],{"title":40,"path":75,"stem":76,"description":300,"children":-1},"了解如何包含关联以及使用软删除。",{"id":302,"title":303,"body":304,"description":424,"extension":293,"links":294,"meta":425,"navigation":182,"path":426,"seo":427,"stem":428,"__hash__":429},"docs_en\u002Fscreencasts.md","Screencasts",{"type":149,"value":305,"toc":412},[306,312,317,320,323,325,329,332,334,338,341,343,347,356,358,362,365,367,371,374,376,380,383,385,389,392,394,398,401,403,407,410],[152,307,308,311],{},[155,309,160],{"href":157,"rel":310},[159]," is creating a series of screencasts that cover a wide range of Orion for Laravel features. Huge thanks for all the effort put into this ❤️",[152,313,314],{},[165,315,316],{},"NOTE: this is an ongoing series - more episodes will be added as soon as they become available.",[169,318,88],{"id":319},"introduction",[152,321,322],{},"What is Orion for Laravel? What can it do? Let's find out in this introductory episode to the series of Orion for Laravel screencasts.",[175,324],{"width":177,"height":178,"src":179,"frameBorder":180,"allow":181,"allowFullScreen":182},[169,326,328],{"id":327},"project-setup-and-basic-crud","Project setup and basic CRUD",[152,330,331],{},"In this episode, Luke walks you through the project setup, Sanctum configuration, and your first REST API for managing Post models.",[175,333],{"width":177,"height":178,"src":192,"frameBorder":180,"allow":181,"allowFullScreen":182},[169,335,337],{"id":336},"preparing-migrations-and-models","Preparing migrations and models",[152,339,340],{},"Before diving into the search functionality, we need to prepare our models and migrations. The episode covers all the necessary steps to get you ready for exploring Orion's search magic :)",[175,342],{"width":177,"height":178,"src":201,"frameBorder":180,"allow":181,"allowFullScreen":182},[169,344,346],{"id":345},"search-keyword-search","Search - keyword search",[152,348,349,350,355],{},"One of the available search options is keyword search. It allows you to look up models that match a provided keyword in ",[165,351,352],{},[212,353,354],{},"any"," of the specified attributes, similar to what a typical search bar does.",[175,357],{"width":177,"height":178,"src":218,"frameBorder":180,"allow":181,"allowFullScreen":182},[169,359,361],{"id":360},"search-filters","Search - filters",[152,363,364],{},"Another way of searching for models is to use filters. Think of it as writing an Eloquent query, but on the frontend side.",[175,366],{"width":177,"height":178,"src":228,"frameBorder":180,"allow":181,"allowFullScreen":182},[169,368,370],{"id":369},"search-sorting","Search - sorting",[152,372,373],{},"When performing a search query, you can also sort the results. Let's take a look at how you can accomplish that, shall we? :)",[175,375],{"width":177,"height":178,"src":238,"frameBorder":180,"allow":181,"allowFullScreen":182},[169,377,379],{"id":378},"search-scopes","Search - scopes",[152,381,382],{},"When doing a lookup, you can take it one step further, and make the API even simpler and more maintainable by utilizing scopes.",[175,384],{"width":177,"height":178,"src":248,"frameBorder":180,"allow":181,"allowFullScreen":182},[169,386,388],{"id":387},"pagination","Pagination",[152,390,391],{},"In this episode Luke walks you through the pagination meta data and how you can use it for building pagination links on the frontend.",[175,393],{"width":177,"height":178,"src":257,"frameBorder":180,"allow":181,"allowFullScreen":182},[169,395,397],{"id":396},"soft-deletes-laravel","Soft Deletes (Laravel)",[152,399,400],{},"Before jumping into Soft Deletes functionality specific to Orion for Laravel, let's review how Soft Deletes work in Laravel itself.",[175,402],{"width":177,"height":178,"src":267,"frameBorder":180,"allow":181,"allowFullScreen":182},[169,404,406],{"id":405},"soft-deletes","Soft Deletes",[152,408,409],{},"Now, when we have a clear understanding of how Soft Deletes work in Laravel, we can explore the available options on how to work with them via the API.",[175,411],{"width":177,"height":178,"src":276,"frameBorder":180,"allow":181,"allowFullScreen":182},{"title":278,"searchDepth":279,"depth":280,"links":413},[414,415,416,417,418,419,420,421,422,423],{"id":319,"depth":280,"text":88},{"id":327,"depth":280,"text":328},{"id":336,"depth":280,"text":337},{"id":345,"depth":280,"text":346},{"id":360,"depth":280,"text":361},{"id":369,"depth":280,"text":370},{"id":378,"depth":280,"text":379},{"id":387,"depth":280,"text":388},{"id":396,"depth":280,"text":397},{"id":405,"depth":280,"text":406},"Explore the features of Orion for Laravel through a series of video tutorials.",{},"\u002Fscreencasts",{"title":303,"description":424},"screencasts","dwEUO_ZsahF-7DFeXka7MCLbkHRbm-X34bSZHPE3Df0",1784394469177]