【问题标题】:How to "connect" Laravel project with Craft 3 CMS Website如何将 Laravel 项目与 Craft 3 CMS 网站“连接”
【发布时间】:2018-07-11 20:28:17
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: laravel laravel-5.5 craftcms


    【解决方案1】:

    让我们开始吧:

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

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

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

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

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

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

    【讨论】:

    • 您好,感谢您的详细回答。我不想能够编辑来自 Craft CMS 的数据。工艺应该只是一个“网关”之类的东西。它正在展示网站并从 Laravel 获取这些登录页面的数据。此外,我可以添加一个带有特定 ID 的更多信息(来自 Laravel 的数据库)的 Craft 条目,例如在从 Laravel 数据库获取的信息下方添加更多文本。我确信这很令人困惑,但目前我不知道如何更好地解释它。
    • 所以你通过 slug 从 laravel 获取并返回,例如,一个标题,但我不喜欢在craftcms 方面有额外内容的想法。如果您要在 laravel 上获取登录页面的内容,不妨从一侧获取所有内容。我可能不是帮助你的最佳人选,但我会支持你,因为我很好奇其他人可能会如何思考并获得一些想法
    • 总的来说,我同意你关于将所有信息放在一个数据库中的观点。但是 Laravel + MySQL 数据库专注于应用程序功能。有一个小的后端来管理这个数据库中的数据。我可以在那里添加其他字段。这会更容易。但我不想将应用数据和营销内容混为一谈。如果我想添加一个新的滑块元素或类似于登录页面的东西,我想用我的 CMS 来做到这一点。在 Laravel 中,我希望只需要添加一个 API 即可提供 JSON 格式的数据。但是我不知道如何构建这样的Craft插件......
    猜你喜欢
    • 1970-01-01
    • 2020-06-29
    • 2020-07-13
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    相关资源
    最近更新 更多