2

我开发了一个应用程序,它从基于Laravel 5.5的 API 获取数据。该应用程序的营销登陆页面基于Craft CMS版本3。营销网站和两个系统的API和数据库运行在同一台服务器上。

我想为 Laravel 数据库的表 X 的每一行生成登录页面。

www.website.com/awesome-landingpage-about-{slug}

实现这一点的最佳方法是什么?

  • 我不想直接从 Laravel 的数据库中获取数据
  • 我不想将 Craft CMS 数据库与 Laravel 同步(从 laravel 的数据库中添加/删除行作为 Craft 的条目)
  • 如果能够有一个入口类型的“登陆页面”,我们可以选择创建一个登陆页面,引用 laravel 表的 ID 并为登陆页面添加额外的内容,这将是非常棒的。

从 Laravel 到 Craft CMS Plugin 的 JSON-API 会是一个好主意吗?

一种选择是使用动态路由并从模板文件中获取来自 127.0.0.1 的数据(因为相同的服务器)?还是在 Craft CMS 中有更聪明的方法?

在此处输入图像描述

4

1 回答 1

1

让我们从以下开始:

  1. “我不想直接从 Laravel 的数据库中获取数据”

我假设您不想在 CraftCMS 中编写代码来访问另一个项目的数据库。好的。如果你打算让他们做单独的工作并使用 Laravel API 单独获取数据,让它处理自己的数据库。

  1. “我不想将 Craft CMS 数据库与 Laravel 同步(从 laravel 的数据库中添加/删除行作为 Craft 的条目)”

所以,这是我的问题:您希望能够单独基于 Laravel 的行或基于 Laravel 的数据库行和 CraftCMS 的行创建登录页面?
这一切都取决于您希望如何抽象这两个框架。我可能会告诉 laravel 接受来自经过身份验证的用户(CraftCMS 用户)或来自本地主机(仅来自机器内部)的请求,并且我会创建端点来添加/删除/编辑/获取数据供我使用。然后我会从 Laravel 获取行并与我自己的组合(假设我是 CMS)。即使在 Intranet 网络中,告诉 laravel 访问数据库的请求也比从 CraftCMS 访问数据库的请求要长,因此您应该期望两个项目之间存在依赖关系。

对于第 3 点,您必须在每个数据库上存储有关某事的信息。在 CraftCMS 上,至少要存储它要向 laravel 请求的 ID,如果你打算在那里有额外的内容,laravel 必须获得一个可以插入新内容的端点。

当您说“为登录页面添加其他内容”时,我不完全确定我是否明白您想要展示的想法,但我会尽量保持简单和抽象它的用途,Laravel 来存储这个“信息” CMS 不应该首先处理(或者您可以计算出一些额外的表并将它们导入到另一个数据库)。影响性能?取决于您拥有的数据量

于 2018-07-13T22:12:33.723 回答