json - 使用 Laravel 将单个数据值保存到数据库中
问题描述
我在 Laravel 项目中遇到了我想保存单个数据值的问题,例如在联系页面上。我只想保存一个电话号码和位置,用户可以编辑(而不是添加更多)。很多人告诉我要继续使用模型,尽管在我看来他们是为了重复内容,比如帖子和用户。是否有 api/Laravel 库允许我将单个数据存储在数据库表中的 json 对象中?
解决方案
在我目前的工作中,我们为此使用了一个单独的settings
表,其中包含两列:key
和value
. 然后有一个简单的函数来检索或保存设置:
function setting($key, $value = null){
$setting = DB::table('settings')->where('key', $key)->first();
if(is_null($value)){
return $setting->value ?? null;
}
if(isset($setting)){
$setting->value = $value;
}else{
$setting = $setting ?: new stdClass();
$setting->key = $key;
$setting->value = $value;
}
DB::table('settings')->insertOrReplace((array) $setting);
return true;
}
它是这样使用的:
$phone = setting('phone'); // Get the phone setting
$url = setting('url', 'http://example.com'); // Set url setting
推荐阅读
- c# - 如何正确调用下面的端点?
- git - 在 Git 和 Github 上克隆更新
- javascript - 散列不同的 JSON 对象数组会为每个人获得相同的散列值
- go - 如何使用 golang 中的函数将 interface{} 值转换为静态类型的值?
- swift - 将 GraphicCircular Apple Watch 复杂功能添加到现有 Xcode 项目
- ruby-on-rails - Ruby如何在包含的模块之外使用变量
- java - 如何在 Firebase 数据库中对特定日期查询的排行榜数据进行排序?
- git - 将远程分支推送到 git 中的另一个远程仓库的用例
- javascript - 如何实现一个函数,当传入一个强字符串时将返回,否则返回 false?
- sql - SQL 语句返回 null 时 ID<>SQL 语句不起作用