{"id":4475,"date":"2020-10-22T10:23:18","date_gmt":"2020-10-22T10:23:18","guid":{"rendered":"https:\/\/infyblog.zluck.in\/?p=4475"},"modified":"2025-04-14T11:34:54","modified_gmt":"2025-04-14T11:34:54","slug":"make-fully-configurable-livewire-searching-component","status":"publish","type":"post","link":"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/","title":{"rendered":"Make fully configurable livewire searching component"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"4475\" class=\"elementor elementor-4475\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4a8a872 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4a8a872\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-897847a\" data-id=\"897847a\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\n\t\t<div class=\"elementor-element elementor-element-4efdda3 elementor-widget elementor-widget-text-editor\" data-id=\"4efdda3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Nowadays, laravel <a href=\"https:\/\/laravel-livewire.com\/docs\/2.x\/quickstart\/\">livewire<\/a> is becoming more trendy for geeks. as most developers are using it, more and more issues are facing while developing the products. one of them is searching the records.<\/p><p>Recently we have developed the livewire common searchable component which makes your searching easier, as you can specify which fields you want to search by just giving the field name into the component.<\/p><p>What you have to do is just create a SearchableComponent class into your App\\Http\\Livewire directory. just copy the following class on the given namespace.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4b3de9b elementor-widget elementor-widget-code-highlight\" data-id=\"4b3de9b\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp><?php\r\nnamespace App\\Http\\Livewire;\r\n\r\nuse Illuminate\\Database\\Eloquent\\Builder;\r\nuse Illuminate\\Database\\Eloquent\\Model;\r\nuse Livewire\\Component;\r\nuse Livewire\\WithPagination;\r\nuse Str;\r\n\r\nabstract class SearchableComponent extends Component\r\n{\r\n    use WithPagination;\r\n\r\n    \/**\r\n      @var string\r\n     \/\r\n    public $search = '';\r\n\r\n    \/**\r\n      @var int\r\n     \/\r\n    protected $paginate = 12;\r\n\r\n    \/* @var Builder \/\r\n    private $query;\r\n\r\n    \/**\r\n      SearchableComponent constructor.\r\n\r\n      @param $id\r\n     \/\r\n    public function construct($id)\r\n    {\r\n        parent::construct($id);\r\n\r\n        $this->prepareModelQuery();\r\n    }\r\n\r\n    \/\r\n       Prepare query\r\n     \/\r\n    private function prepareModelQuery()\r\n    {\r\n        \/ @var Model $model *\/\r\n        $model = app($this->model());\r\n\r\n        $this->query = $model->newQuery();\r\n    }\r\n\r\n    \/**\r\n      @return mixed\r\n     \/\r\n    abstract function model();\r\n\r\n    \/**\r\n      Reset model query\r\n     \/\r\n    protected function resetQuery()\r\n    {\r\n        $this->prepareModelQuery();\r\n    }\r\n\r\n    \/**\r\n      @return Builder\r\n     \/\r\n    protected function getQuery()\r\n    {\r\n        return $this->query;\r\n    }\r\n\r\n    \/**\r\n      @param  Builder  $query\r\n     \/\r\n    protected function setQuery(Builder $query)\r\n    {\r\n        $this->query = $query;\r\n    }\r\n\r\n    \/**\r\n      @param  bool  $search\r\n      @return \\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator\r\n     *\/\r\n    protected function paginate($search = true)\r\n    {\r\n        if ($search) {\r\n            $this->filterResults();\r\n        }\r\n\r\n        $all = $this->query->paginate($this->paginate);\r\n        $currentPage = $all->currentPage();\r\n        $lastPage = $all->lastPage();\r\n        if ($currentPage > $lastPage) {\r\n            $this->page = $lastPage;\r\n        }\r\n\r\n        return $this->query->paginate($this->paginate);\r\n    }\r\n\r\n    \/**\r\n      @return Builder\r\n     \/\r\n    protected function filterResults()\r\n    {\r\n        $searchableFields = $this->searchableFields();\r\n        $search = $this->search;\r\n\r\n        $this->query->when(! empty($search), function (Builder $q) use ($search, $searchableFields) {\r\n            $searchString = '%'.$search.'%';\r\n            foreach ($searchableFields as $field) {\r\n                if (Str::contains($field, '.')) {\r\n                    $field = explode('.', $field);\r\n                    $q->orWhereHas($field[0], function (Builder $query) use ($field, $searchString) {\r\n                        $query->whereRaw(\"lower($field[1]) like ?\", $searchString);\r\n                    });\r\n                } else {\r\n                    $q->orWhereRaw(\"lower($field) like ?\", $searchString);\r\n                }\r\n            }\r\n        });\r\n\r\n        return $this->query;\r\n    }\r\n\r\n    \/**\r\n      @return mixed\r\n     \/\r\n    abstract function searchableFields();\r\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4f7b819 elementor-widget elementor-widget-text-editor\" data-id=\"4f7b819\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Now you have to extend your existing Laravel component by SearchableComponent. Let&#8217;s say we already have the Tags livewire component. and it looks like the following.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cdbce39 elementor-widget elementor-widget-code-highlight\" data-id=\"cdbce39\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>App\\Http\\Livewire;\r\n\r\nuse App\\Models\\Tag;\r\nuse Illuminate\\Contracts\\Pagination\\LengthAwarePaginator;\r\n\r\nclass Tags extends SearchableComponent\r\n{\r\n    public function render()\r\n    {\r\n        $tags = $this->searchTags();\r\n\r\n        return view('livewire.tags', [undefined])->with(\"search\");\r\n    }\r\n\r\n    \/**\r\n      @return LengthAwarePaginator\r\n     \/\r\n    public function searchTags()\r\n    {\r\n        $this->setQuery($this->getQuery());\r\n\r\n        return $this->paginate();\r\n    }\r\n\r\n    function model()\r\n    {\r\n        return Tag::class;\r\n    }\r\n\r\n    function searchableFields()\r\n    {\r\n        return [\r\n];\r\n    }\r\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8486229 elementor-widget elementor-widget-text-editor\" data-id=\"8486229\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>So here we have extended our existing Tags component by SearchingComponent.<\/p><p>In searchable fields, you can specify the field name that you want to search. and replace the Model with your records Modal.<\/p><p>That&#8217;s it. Now you don&#8217;t need to write search queries again and again. just extend your livewire component by a searchable component.<\/p><p>Here are some Interesting livewire tutorials that you need to check :<\/p><ul><li><a href=\"https:\/\/infyom.com\/blog\/how-to-use-select2-with-livewire\/\">How to use Select2 With livewire<\/a><\/li><\/ul>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\n    <div class=\"xs_social_share_widget xs_share_url after_content \t\tmain_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content\">\n\n\t\t\n        <ul>\n\t\t\t        <\/ul>\n    <\/div> \n","protected":false},"excerpt":{"rendered":"<p>laravel. livewire, livewire searching, livewire component<\/p>\n","protected":false},"author":2,"featured_media":4477,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"postBodyCss":"","postBodyMargin":[],"postBodyPadding":[],"postBodyBackground":{"backgroundType":"classic","gradient":""},"two_page_speed":[],"footnotes":""},"categories":[9],"tags":[69],"class_list":["post-4475","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-livewire"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Make fully configurable livewire searching component<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Make fully configurable livewire searching component\" \/>\n<meta property=\"og:description\" content=\"laravel. livewire, livewire searching, livewire component\" \/>\n<meta property=\"og:url\" content=\"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog | InfyOm Technologies\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/infyom\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-22T10:23:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-14T11:34:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/2020-12-19-5fddfbffce862.png\" \/>\n\t<meta property=\"og:image:width\" content=\"772\" \/>\n\t<meta property=\"og:image:height\" content=\"484\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InfyOm\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@InfyOm\" \/>\n<meta name=\"twitter:site\" content=\"@InfyOm\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InfyOm\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/\"},\"author\":{\"name\":\"InfyOm\",\"@id\":\"https:\/\/infyom.com\/blog\/#\/schema\/person\/659bfc844c333d041221e83c5f5ec754\"},\"headline\":\"Make fully configurable livewire searching component\",\"datePublished\":\"2020-10-22T10:23:18+00:00\",\"dateModified\":\"2025-04-14T11:34:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/\"},\"wordCount\":196,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/infyom.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/2020-12-19-5fddfbffce862.png\",\"keywords\":[\"Livewire\"],\"articleSection\":[\"Laravel\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/\",\"url\":\"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/\",\"name\":\"Make fully configurable livewire searching component\",\"isPartOf\":{\"@id\":\"https:\/\/infyom.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/2020-12-19-5fddfbffce862.png\",\"datePublished\":\"2020-10-22T10:23:18+00:00\",\"dateModified\":\"2025-04-14T11:34:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/#primaryimage\",\"url\":\"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/2020-12-19-5fddfbffce862.png\",\"contentUrl\":\"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/2020-12-19-5fddfbffce862.png\",\"width\":772,\"height\":484,\"caption\":\"Make fully configurable livewire searching component\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/infyom.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Make fully configurable livewire searching component\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/infyom.com\/blog\/#website\",\"url\":\"https:\/\/infyom.com\/blog\/\",\"name\":\"Blog | InfyOm Technologies\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/infyom.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/infyom.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/infyom.com\/blog\/#organization\",\"name\":\"InfyOm Technologies\",\"url\":\"https:\/\/infyom.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/infyom.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/06\/InfyOm-Logo.png\",\"contentUrl\":\"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/06\/InfyOm-Logo.png\",\"width\":88,\"height\":41,\"caption\":\"InfyOm Technologies\"},\"image\":{\"@id\":\"https:\/\/infyom.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/infyom\",\"https:\/\/x.com\/InfyOm\",\"https:\/\/www.instagram.com\/infyomtechnologies\/\",\"https:\/\/in.linkedin.com\/company\/infyom-technologies\",\"https:\/\/github.com\/infyomlabs\",\"https:\/\/x.com\/infyom\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/infyom.com\/blog\/#\/schema\/person\/659bfc844c333d041221e83c5f5ec754\",\"name\":\"InfyOm\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/infyom.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1ad162864d8d33c04ea9e6d0333cc483?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1ad162864d8d33c04ea9e6d0333cc483?s=96&d=mm&r=g\",\"caption\":\"InfyOm\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Make fully configurable livewire searching component","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/","og_locale":"en_US","og_type":"article","og_title":"Make fully configurable livewire searching component","og_description":"laravel. livewire, livewire searching, livewire component","og_url":"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/","og_site_name":"Blog | InfyOm Technologies","article_publisher":"https:\/\/www.facebook.com\/infyom","article_published_time":"2020-10-22T10:23:18+00:00","article_modified_time":"2025-04-14T11:34:54+00:00","og_image":[{"width":772,"height":484,"url":"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/2020-12-19-5fddfbffce862.png","type":"image\/png"}],"author":"InfyOm","twitter_card":"summary_large_image","twitter_creator":"@InfyOm","twitter_site":"@InfyOm","twitter_misc":{"Written by":"InfyOm","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/#article","isPartOf":{"@id":"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/"},"author":{"name":"InfyOm","@id":"https:\/\/infyom.com\/blog\/#\/schema\/person\/659bfc844c333d041221e83c5f5ec754"},"headline":"Make fully configurable livewire searching component","datePublished":"2020-10-22T10:23:18+00:00","dateModified":"2025-04-14T11:34:54+00:00","mainEntityOfPage":{"@id":"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/"},"wordCount":196,"commentCount":0,"publisher":{"@id":"https:\/\/infyom.com\/blog\/#organization"},"image":{"@id":"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/#primaryimage"},"thumbnailUrl":"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/2020-12-19-5fddfbffce862.png","keywords":["Livewire"],"articleSection":["Laravel"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/","url":"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/","name":"Make fully configurable livewire searching component","isPartOf":{"@id":"https:\/\/infyom.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/#primaryimage"},"image":{"@id":"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/#primaryimage"},"thumbnailUrl":"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/2020-12-19-5fddfbffce862.png","datePublished":"2020-10-22T10:23:18+00:00","dateModified":"2025-04-14T11:34:54+00:00","breadcrumb":{"@id":"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/#primaryimage","url":"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/2020-12-19-5fddfbffce862.png","contentUrl":"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/2020-12-19-5fddfbffce862.png","width":772,"height":484,"caption":"Make fully configurable livewire searching component"},{"@type":"BreadcrumbList","@id":"https:\/\/infyom.com\/blog\/make-fully-configurable-livewire-searching-component\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/infyom.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Make fully configurable livewire searching component"}]},{"@type":"WebSite","@id":"https:\/\/infyom.com\/blog\/#website","url":"https:\/\/infyom.com\/blog\/","name":"Blog | InfyOm Technologies","description":"","publisher":{"@id":"https:\/\/infyom.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/infyom.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/infyom.com\/blog\/#organization","name":"InfyOm Technologies","url":"https:\/\/infyom.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/infyom.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/06\/InfyOm-Logo.png","contentUrl":"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/06\/InfyOm-Logo.png","width":88,"height":41,"caption":"InfyOm Technologies"},"image":{"@id":"https:\/\/infyom.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/infyom","https:\/\/x.com\/InfyOm","https:\/\/www.instagram.com\/infyomtechnologies\/","https:\/\/in.linkedin.com\/company\/infyom-technologies","https:\/\/github.com\/infyomlabs","https:\/\/x.com\/infyom"]},{"@type":"Person","@id":"https:\/\/infyom.com\/blog\/#\/schema\/person\/659bfc844c333d041221e83c5f5ec754","name":"InfyOm","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/infyom.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1ad162864d8d33c04ea9e6d0333cc483?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1ad162864d8d33c04ea9e6d0333cc483?s=96&d=mm&r=g","caption":"InfyOm"}}]}},"_links":{"self":[{"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/posts\/4475","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/comments?post=4475"}],"version-history":[{"count":22,"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/posts\/4475\/revisions"}],"predecessor-version":[{"id":6544,"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/posts\/4475\/revisions\/6544"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/media\/4477"}],"wp:attachment":[{"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/media?parent=4475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/categories?post=4475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/tags?post=4475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}