首页 > 解决方案 > 使用 Laravel 将单个数据值保存到数据库中

问题描述

我在 Laravel 项目中遇到了我想保存单个数据值的问题,例如在联系页面上。我只想保存一个电话号码和位置,用户可以编辑(而不是添加更多)。很多人告诉我要继续使用模型,尽管在我看来他们是为了重复内容,比如帖子和用户。是否有 api/Laravel 库允许我将单个数据存储在数据库表中的 json 对象中?

标签: jsonlaravelmodel

解决方案


在我目前的工作中,我们为此使用了一个单独的settings表,其中包含两列:keyvalue. 然后有一个简单的函数来检索或保存设置:

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

推荐阅读