如何使用 Craft 3 CMS 网站 "connect" Laravel 项目
How to "connect" Laravel project with Craft 3 CMS Website
我开发了一个应用程序,它基于 Laravel 5.5 从 API 中获取数据。该应用程序的营销着陆页基于 Craft CMS 版本 3。营销网站和 API 以及两个系统的数据库 运行 在同一台服务器上。
我想为 Laravel 数据库的 table X 的每一行生成登录页。
www.website.com/awesome-landingpage-about-{slug}
实现这一点的最佳方法是什么?
- 我不想直接从 Laravel 的数据库中获取数据
- 我不想将 Craft CMS 数据库与 Laravel 同步(add/remove 来自 laravel 数据库的行作为 Craft 的条目)
- 如果能够有一个入口类型 "Landingpage" 就太好了着陆页的内容。
从 Laravel 到 Craft CMS 插件的 JSON-API 会是一个好的性能想法吗?
一种选择是使用动态路由并仅从模板文件中获取来自 127.0.0.1(因为同一服务器)的数据?或者 Craft CMS 有更聪明的方法吗?
让我们开始:
- "I don't want to fetch the data directly from Laravel's database"
我假设您不想在 CraftCMS 中编写代码来访问另一个项目的数据库。好的。如果您打算让他们做单独的工作并使用 Laravel API 单独获取数据,让它处理它自己的数据库。
- "I don't want to synchronize the Craft CMS database with the Laravel (add/remove the rows from the laravel's database as entries to Craft)"
所以,这是我的问题:
您希望能够单独基于 Laravel 的行或基于 Laravel 的数据库行和 CraftCMS 的行来创建登录页面?
这一切都归结为你想多好地抽象这两个框架。
我可能会告诉 laravel 接受来自经过身份验证的用户(CraftCMS 用户)或本地主机(仅来自机器内部)的请求,并且我会创建端点以供我使用 add/remove/edit/get 数据。然后我会从 Laravel 中获取行并与我自己的相结合(假设我是 CMS)。
即使在 Intranet 网络中,告诉 laravel 访问数据库的请求比从 CraftCMS 访问数据库的请求要长,因此您应该预料到这两个项目之间存在依赖关系。
对于第 3 点,您必须在每个数据库中存储有关某些内容的信息。在 CraftCMS 上,为了至少存储 ID,它将向 laravel 请求并且 laravel 将必须获得一个可以插入新内容的端点,如果您计划在那里添加其他内容。
我不完全确定当你说 "add additional content for the landing pages" 时我是否理解你想要展示的想法,但我会尽量保持简单和抽象它的用途,Laravel 到存储 CMS 一开始不应处理的 'information'(或者您可以计算出一些额外的表并将它们导入其他数据库)。
影响性能?取决于您获得的数据量
我开发了一个应用程序,它基于 Laravel 5.5 从 API 中获取数据。该应用程序的营销着陆页基于 Craft CMS 版本 3。营销网站和 API 以及两个系统的数据库 运行 在同一台服务器上。
我想为 Laravel 数据库的 table X 的每一行生成登录页。
www.website.com/awesome-landingpage-about-{slug}
实现这一点的最佳方法是什么?
- 我不想直接从 Laravel 的数据库中获取数据
- 我不想将 Craft CMS 数据库与 Laravel 同步(add/remove 来自 laravel 数据库的行作为 Craft 的条目)
- 如果能够有一个入口类型 "Landingpage" 就太好了着陆页的内容。
从 Laravel 到 Craft CMS 插件的 JSON-API 会是一个好的性能想法吗?
一种选择是使用动态路由并仅从模板文件中获取来自 127.0.0.1(因为同一服务器)的数据?或者 Craft CMS 有更聪明的方法吗?
让我们开始:
- "I don't want to fetch the data directly from Laravel's database"
我假设您不想在 CraftCMS 中编写代码来访问另一个项目的数据库。好的。如果您打算让他们做单独的工作并使用 Laravel API 单独获取数据,让它处理它自己的数据库。
- "I don't want to synchronize the Craft CMS database with the Laravel (add/remove the rows from the laravel's database as entries to Craft)"
所以,这是我的问题:
您希望能够单独基于 Laravel 的行或基于 Laravel 的数据库行和 CraftCMS 的行来创建登录页面?
这一切都归结为你想多好地抽象这两个框架。
我可能会告诉 laravel 接受来自经过身份验证的用户(CraftCMS 用户)或本地主机(仅来自机器内部)的请求,并且我会创建端点以供我使用 add/remove/edit/get 数据。然后我会从 Laravel 中获取行并与我自己的相结合(假设我是 CMS)。
即使在 Intranet 网络中,告诉 laravel 访问数据库的请求比从 CraftCMS 访问数据库的请求要长,因此您应该预料到这两个项目之间存在依赖关系。
对于第 3 点,您必须在每个数据库中存储有关某些内容的信息。在 CraftCMS 上,为了至少存储 ID,它将向 laravel 请求并且 laravel 将必须获得一个可以插入新内容的端点,如果您计划在那里添加其他内容。
我不完全确定当你说 "add additional content for the landing pages" 时我是否理解你想要展示的想法,但我会尽量保持简单和抽象它的用途,Laravel 到存储 CMS 一开始不应处理的 'information'(或者您可以计算出一些额外的表并将它们导入其他数据库)。 影响性能?取决于您获得的数据量