在 Laravel 5 中创建“设置”模型的最佳实践是什么?

2024-04-27

这是我使用 Laravel 的第一个项目(我从 5.2 开始)。我正在建立一个自我管理的网站。有一个管理员应该保存网站设置以供以后在网站中使用。例如:背景颜色、社交网络、图片轮播、产品等。

我的第一次尝试是创建一个模型“设置”:id | key (unique) | value。当我尝试保存社交网络(以显示在网站标题中)时,我意识到我必须在“value”中保存一个包含 URL、标题等的 json...关系模型的实现很丑陋,所以我来到了结论是很糟糕。我创建了一个单独的模型社交网络:id | URL | image | name.

现在我正在考虑在我的 BaseController 中一次加载所有这些模型,这样我就可以通过所有控制器来获取它,但我不确定它是否正确。我的意思是,一个数组$settings所有模型都作为其中的一部分:

abstract class BaseController extends Controller
{
    protected $settings;
    ...

    public function __construct(...)
    {
        $this->settings = [
            'backgroundColor' => 'red',
            'socialNetworks' => SocialNetwork::all(),
            'other' => Other::all(),
            ...
        ]
    }
}

这对我来说看起来很可怕,但我对这个框架迷失了,我不知道我能做的最好的事情是什么来处理这个问题。 有人告诉我有关服务提供商的信息,但我试图找出它的优势以及能够利用这些模型(保存数据)的最佳方法,但我不明白。

我并不要求明确的代码(但是这会很好),我会在理解该方法后对其进行调查,但一些提示或概念性帮助将非常感激。

谢谢你!


这是一个很好的问题。最近我为我的 Code Canyon 产品之一做了(Krisma CMS 脚本 https://codecanyon.net/item/krisma-cms-script/17523033)我的方法如下。

1) 创建服务提供者

public function boot()
    {
        $this->header();
        $this->intro();
        $this->about();
        $this->resume();
        $this->portfolio();
        $this->services();
        $this->stats();
        $this->contact();
        $this->footer();
        $this->section();
        $this->codesetting();
        $this->customizer();
    }

在引导中调用的每个函数都在引导函数下面的 Provider 类中声明。 例如,对于标题部分,我通过标题模型从数据库获取数据并在全球范围内共享,可以在应用程序中的任何位置访问这些数据。

$section = Section ::find(1);
view()->share('section ', $section);

2)为每个部分创建一个表,即关于、介绍等,并插入我想要修改的值。

3)现在在管理面板中创建一个用于更改/修改的表单并更新所需的部分属性。

4) 获取视图中的数据。假设用户已将管理面板的背景颜色更改为红色,因此在您的视图中打印出该变量style : {{ $sectionname->color }}

5)就是这样,我希望它能让您更好地了解如何实施设置,我为我的产品做到了这一点,可能有更好的方法,但到目前为止,这是我在研究中发现的并且对我来说非常完美。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Laravel 5 中创建“设置”模型的最佳实践是什么? 的相关文章

  • PHP/PDO/MySQL:插入 MEDIUMBLOB 会存储错误数据

    我有一个简单的 PHP Web 应用程序 它通过文件上传接受图标图像并将它们存储在 MEDIUMBLOB 列中 在我的机器 Windows 和两台 Linux 服务器上 这工作得很好 在第三台 Linux 服务器上 插入的图像已损坏 在 S
  • 如何自定义 Zend_Form 正则表达式错误消息?

    我有以下代码 postcode form gt createElement text postcode postcode gt setLabel Post code postcode gt addValidator regex false
  • 图片无法直接上传到相册

    我正在开发上传图片文件的应用程序 但图片不能直接上传到相册 上传之前始终必须经过批准 如何解决这个问题 问题 您想将这些照片添加到您的相册吗 下面的照片是从另一个应用程序上传的 您需要批准它们 你需要user photos允许直接上传到相册
  • XMLReader - 如何处理未声明的命名空间

    Merged https meta stackexchange com questions 158066 what is a merged question with 如何使用 XMLReader 读取未定义命名空间的 XML 文件 que
  • 使用 href 和 php 从 sql 数据库对 html 表进行排序

    我有一个 html 表 其中包含来自 php 吐出的 sql 表的产品数据 我想通过单击表列的标题对数据进行排序 我像这样输出我的表 php product list sql mysql query SELECT FROM products
  • PHP7 返回类型为 JSON

    PHP 7 有一个新功能 即返回类型声明 我们可以返回一个 字符串 类型 例如 function myFunction a string 我们还可以返回一个 数组 类型 例如 function myFunction a array 但是我们
  • 在composer.json中运行命令行命令

    我正在尝试编写一个composer json 文件 该文件将连续运行多个命令行命令 作为一个示例 如下所示 scripts test createDir createDir mkdir testing 当我在终端中运行作曲家文件时使用com
  • 类似的 PHP 表单代码:如果 $_REQUEST 为空,第一个抛出错误,第二个则不抛出错误

    我是 PHP 新手 所以这可能是一个简单的答案 希望我能正确地按照 SO 标准格式化它 对于该网站来说仍然是新的 我正在通过 SitePoint 编写两组非常相似的代码 提交表单数据并使用 htmlspecialchars 来阻止 XSS
  • MySQL 和 PHP:多关键字搜索

    我有一个包含逗号分隔关键字的字符串 例如 keywords keyword1 keyword2 keyword3 我的表架构 名为tbl address是这样的 简化的 id INT 11 PRIMARY KEY AUTO INCREMEN
  • 在 WooCommerce 订单和电子邮件中添加并显示自定义购物车项目数据

    我有一个名为彩票的自定义 woocommerce 产品类型 我需要在其上添加一个自定义选择字段 因为它不是可变产品 所以我添加了一个 一切工作正常 我在购物车和结帐中也获得了价值 但我无法在管理订单或订单邮件 客户和管理员 中获得价值 这是
  • 如何在 laravel/php 中访问该集合的内容

    我是 Laravel 的新手 正在做一个构建迷你社交网络应用程序的项目 我有一个与用户模型有关系的帖子模型 我有一个帖子页面 其中仅显示经过身份验证的用户及其朋友的帖子 在我的 PostController 中 我像这样查询经过身份验证的用
  • 准备好的声明不返回任何内容

    我知道这个特定的查询是有效的 因为我用未经准备的过程方法测试了它 这里是 name introduction mysqli new mysqli localhost user pass db or die There was a probl
  • 生成 CloudFront 签名 URL 时性能缓慢

    我正在按照此示例使用 PHP 在 CloudFront 上创建签名 URLhttp docs aws amazon com AmazonCloudFront latest DeveloperGuide CreateURL PHP html
  • 如何在xampp中启用curl

    我面临下面给出的错误 致命错误 在第 11 行调用 E xampp htdocs new functions php 中未定义的函数curl init 我已经做出了改变php ini 我把前面的分号去掉了 extension php cra
  • PHP 静态变量用双引号引起来

    如何让 PHP 计算双引号中的静态变量 我想做这样的事情 log self CLASS METHOD entering 我尝试过各种 组合来获取变量值self CLASS 但没有任何效果 我目前已经解决了字符串连接问题 但输入起来很痛苦 l
  • PHP 是否有与 Java 的 RequestDispatcher.forward 等效的功能?

    在 Java 中我可以编写一个非常基本的 JSPindex jsp像这样 这样做的效果是用户请求index jsp 或者只是包含目录 假设index jsp是目录的默认文档 将会看到home action没有浏览器重定向 即 forward
  • 如何从对应的数组值中获取数组键?

    您可以轻松地通过其键获取数组值 如下所示 value array key 但如果我有该值并且想要它的密钥怎么办 获得它的最佳方式是什么 你可以使用array search https www php net manual en functi
  • 如何使用 wpf webbrowser 将数据发布到 Web 服务器

    我想从数据库获取数据并使用它来让用户登录到网站 我有一个包含 Web 浏览器控件的 wpf 页面 我有这样的代码 用于将用户登录到用 php 编写的网站
  • 日期函数的奇怪行为

    我今天在 StackOverflow 上遇到了这个问题 但没有得到答案 我的问题是 echo date Y m d strtotime 2012 september 09 output 2012 09 01 echo date Y m d
  • SQL查询:按字符长度排序?

    是否可以按字符总数对sql数据行进行排序 e g SELECT FROM database ORDER BY data length 我想你想用这个 http dev mysql com doc refman 5 0 en string f

随机推荐

  • 如何强制 JTable 在包含阿拉伯字符的情况下不反转文本?

    我有以下文字 word 但是当它显示在我的 JTable 上时 它看起来像这样 word 在每个 JLabel 或 TextArea 或任何其他输入中 它确实看起来像原始文本 word 仅在 JTable 上我遇到这样的问题 我不在乎它是否
  • 延迟作业:如何强制处理失败的作业

    我正在维护一个 Rails 应用程序 在该应用程序上运行 Delayed job gem 来发送电子邮件 我刚刚注意到 由于应用程序中的错误 我所有延迟的工作在过去几天都失败了 现在错误已修复 我想尽快处理作业 但它们已经有太多失败的尝试
  • 使窗口在特定边界内可拖动 WPF

    我有一个 wpf 子窗口 允许使用 DragMove 方法进行拖动 但是 我需要允许仅在其父窗口控件的范围内拖动窗口 谁能建议一种方法来实现这一目标 谢谢 有两种方法可以做到这一点 Using 地点已结束 http msdn microso
  • 会话复制在多节点集群上的 glassfish 中不起作用

    会话复制在多节点集群上的 glassfish 中不起作用 1 应用程序在 web xml 中包含可分发标签 2 应用程序部署在集群 c1 中 该集群包含同一节点上的 2 个实例 时 会话复制可以正常工作 3 当部署在集群 c2 包含两台 C
  • 配置 Jest 模仿 webpack 解析 root 和解析别名

    我正在努力使用 Webpack 和 Jest 建立一个项目 目前 Webpack 解决了配置导致 Jest 测试复杂化的问题 在我的 webpack 配置中 我设置了以下选项 resolve root dirname src extensi
  • Gnu 时间和格式化输出

    我想使用 gnu time 来测量一些小 c 程序的运行时间 人 中写道 f FORMAT format FORMAT Use FORMAT as the format string that controls the output of
  • 将 hadoop fs 路径转换为 ​​EMR 上的 hdfs:// 路径

    我想知道如何将数据从 EMR 集群的 HDFS 文件系统移动到 S3 存储桶 我认识到我可以直接在 Spark 中写入 S3 但原则上 之后执行它也应该很简单 到目前为止 我还没有发现在实践中这是正确的 AWS 文档建议s3 dist cp
  • Instagram 是否于 2018 年 3 月 30 日更改了 API 速率限制?

    我使用一些自行开发的脚本来获取有关我的帖子和关注者的信息 最近我发现 Instagram 更改了我的应用程序的速率限制 我在标题中看到以下信息 x ratelimit limit 200 我了解了 Instagram 博客和页面的变化 但发
  • 如何在 Android 应用程序中显示日历 UI? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在我的应用程序中使用日历 如下图所示 我希望在我的活动中使用此日历 UI 我怎样才能做到这一点 呵呵 我们之前已经这样做过 请参阅
  • Excel 中的单元格“数字存储为文本”

    我有一个 C 程序 它获取旧报告的文本文件并映射到 Excel 工作表 但对于交易单元格 它输出为 数字存储为文本 这不允许 任何格式 我们想要显示 1 000 00 但它仅显示为 1000 有什么办法可以得到这种格式吗 这些列是余额和金额
  • Bootstrap 3.3.5 中的多级下拉菜单

    我有以下 HTML 代码 并根据 Bootstrap 文档中的标记将其构建为我认为应该实现的方式 div class navbar collapse collapse ul class nav navbar nav li class act
  • Perl - 将数组元素句子与变量进行比较

    我使用 grep 返回临时F 文件和 arrayWarning 之间不匹配的数组 my c grep map 1 temporaryF arrayWarning c 里面有很多行 例如 Sun Sep 30 00 05 55 fibre c
  • 如何在 r 中没有警告消息的情况下知道 lme4 中模型是否收敛或未能收敛?

    重复的 例如 我可以通过以下方式评估这个多级模型是否是单一拟合 使用isSingular 功能 同样 有什么方法可以知道这个模型是收敛还是失败 我的顾问说 如果模型无法收敛 则不会估计标准误差 然而 尽管以下未能收敛 但似乎估计了标准误差
  • 根据当前配置,没有映射 Doctrine ORM 实体

    我有一个可疑的问题 我有一组现有的带注释的 Doctrine 实体 它们已在 Symfony2 Doctrine2 项目中成功使用 然而 我目前正在将该项目的一些核心功能隔离到它自己的 Web 框架独立库中 但我似乎无法让这些实体正常运行
  • 如何从 Swift NSURLSession 获取数据?

    例如 我有以下代码 let task NSURLSession sharedSession dataTaskWithURL url completionHandler data response error gt Void in var d
  • 如何像 urllib 这样的模拟/存根 python 模块

    我需要测试一个需要使用 urllib urlopen 它也使用 urllib urlencode 查询外部服务器上的页面的函数 服务器可能宕机 页面可能发生变化 我不能依赖它进行测试 控制 urllib urlopen 返回内容的最佳方法是
  • 限制 SFTP 用户只能访问主目录

    我正在尝试在 EC2 ubuntu 服务器上设置客户端 SFTP 空间 访问权限仅限于该用户的主目录 关于此的其他主题只有大约六千个 而且我在其他选项卡中打开了其中的大多数主题 这看起来很简单 我已经搞定了 sudo groupadd lo
  • 如何将 MNIST 图像下载为 PNG

    我想将 MNIST 图像作为 PNG 文件下载到我的计算机上 我找到了这个页面 http yann lecun com exdb mnist http yann lecun com exdb mnist 我按下后 train images
  • 安装插件时出错:“无法获取框架操纵器服务”

    在我的 Windows XP 计算机上使用 Eclipse Helios 的 RCP 版本 我尝试从标准更新站点安装一些相当基本的插件 例如 PyDev 和 EPIC 不幸的是 我不断收到以下错误消息 An error occurred w
  • 在 Laravel 5 中创建“设置”模型的最佳实践是什么?

    这是我使用 Laravel 的第一个项目 我从 5 2 开始 我正在建立一个自我管理的网站 有一个管理员应该保存网站设置以供以后在网站中使用 例如 背景颜色 社交网络 图片轮播 产品等 我的第一次尝试是创建一个模型 设置 id key un