如何使用 Laravel 5.1 将空字符串更改为 null?

2024-02-13

在使用 Laravel 5.1 时,我尝试在使用 Eloquent ORM 将每个值保存到数据库之前检查每个值。我的逻辑是,如果该值为空字符串,则首先修剪该值"",然后将其转换为null而不仅仅是一个空字符串。

建议我创建一个 Trait 来重写 setAttribute 方法。

这就是我所做的

我在名为的文件内有一个新文件夹“app\Traits”TrimScalarValues.php其中包含以下代码

<?php

namespace App\Traits;

trait TrimScalarValues
{
    public function setAttribute($key, $value)
    {
        if (is_scalar($value)) {
            $value = $this->emptyStringToNull(trim($value));
        }

        return $this->setAttribute($key, $value);
    }


    /**
     * return null value if the string is empty otherwise it returns what every the value is
     *
    */
    private function emptyStringToNull($string)
    {
        //trim every value
        $string = trim($string);

        if ($string === ''){
           return null;
        }

        return $string;
    }
}

最后我有一个app\Models\Account.php文件包含以下代码

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use App\Models\industry;
use App\Traits\RecordSignature;
use App\Traits\TrimScalarValues;


class Account extends Model
{
    use RecordSignature, TrimScalarValues;
    /**
     * The database table used by the model.
     *
     * @var string
    */
    protected $table = 'accounts';

    protected $primaryKey = 'account_id';

    const CREATED_AT = 'created_on';

    const UPDATED_AT = 'modified_on';

    const REMOVED_AT = 'purged_on';


    /**
     * The attributes that are mass assignable.
     *
     * @var array
    */
    protected $fillable = ['client_id','account_name', 'company_code', 'legal_name', 'created_by','modified_by','instrucations'];

    /**
     * The attributes excluded from the model's JSON form.
     *
     * @var array
    */
    //protected $hidden = ['account_id', 'remember_token'];


    protected $guarded = ['account_id'];

    /**
     * Get the industry record associated with the account.
    */
    public function industry()
    {
        return $this->hasOne(industry, industry::primaryKey);
    }

    public function pk(){

        return $this->primaryKey;
    }

}

但每次更新值时,我都会得到一个没有错误或日志的白页。

当我修改app\Models\Account.php并改变use RecordSignature, TrimScalarValues; to use RecordSignature;然后我没有得到白页,但显然这些值没有被修剪并转换为空。

我在这里做错了什么?


你不能打电话$this->setAttribute()在你的特质中。相反,你想调用“原始”setAttribute方法通过使用parent:::

public function setAttribute($key, $value)
{
    if (is_scalar($value)) {
        $value = $this->emptyStringToNull(trim($value));
    }

    return parent::setAttribute($key, $value);
}

关于空日志,除了框架中的日志之外,您还检查过网络服务器日志吗?

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

如何使用 Laravel 5.1 将空字符串更改为 null? 的相关文章

  • 获取 YouTube 最高缩略图分辨率

    我想获得 youtube 最高缩略图 maxresdefault jpg 像这个 http i ytimg com vi Cj6ho1 G6tw maxresdefault jpg http i ytimg com vi Cj6ho1 G6
  • 无法访问 localhost/xampp/index.php

    我刚刚安装了 Windows 7 的 XAMPP 控制面板似乎工作正常 我启动了 MySql 和 Apache 我遇到的问题是 当我在浏览器 Google Chrome 中输入 localhost 时 它会将我发送到 http localh
  • jQuery ajax 调用包含重音字符的 url 将错误的 Uri 从 IE 发送到服务器

    我在使用 IE 发送包含重音字符的 url 时遇到问题 这是一个简单的函数 function runjQueryTest var url test Beyonc get url function 在服务器 PHP 上我记录了请求uri的值
  • 如何使用 PHP 构建正确的 SOAP 请求

    我需要格式化 构建此 SOAP 服务 的请求 http api notificationmessaging com NMSOAP NotificationService wsdl http api notificationmessaging
  • PHP WCF 集成

    是不是如果我想支持php客户端访问我的服务 我必须有一个基本的http端点 这是因为php仍然只支持soap 1 1吗 据我所知 自从我使用 PHP 以来已经两年了 情况仍然如此 如果客户端应用程序将使用 PHP 的内置 SoapClien
  • 如何在 JavaScript 中创建服务器端进度指示器?

    我想在我的网站中创建一个部分 用户可以在其中进行一些简单的操作update纽扣 这些中的每一个update按钮将发送到服务器 并在幕后进行长时间的处理 当服务器处理数据时 我希望用户有某种进度指示器 例如进度条或文本百分比 我使用 jQue
  • PDO PHP 连接,致命错误

    我的连接类 firstcode php class DB functions public db function construct try db new PDO mysql localhost dbname xxx charset ut
  • 分页显示所有其他页面上第 1 页的相同帖子

    我最近在创建即将发生的事件列表时得到了很多帮助 请参阅此处显示即将举行的活动 包括今天的活动 https stackoverflow com questions 17343615 showing upcoming events includ
  • 使用 PHP glob 列出 FTP 服务器上的文件不起作用

    我使用此代码来访问目录 location files pictures glob location png 我想使用 FTP 访问远程路径 location opendir ftp user password host name files
  • docker 中的 php Curl 冲突 CURLOPT_FILE 和 CURLOPT_RETURNTRANSFER

    当我使用curl时CURLOPT FILE and CURLOPT RETURNTRANSFER选项 文件为空 没有任何curl错误 fp fopen saveTo w ch curl init fileUrl curl setopt ch
  • 在 foreach 中使用 QueryPath 的多个查找

    我正在使用 QueryPath 和 PHP 这发现 eventdate 没问题 但不会为 dtstart 返回任何内容 qp htmlqp url foreach qp gt find table schedule gt find tr a
  • 如何在codeigniter中将上传图片比例限制为16:9?

    这是我用来上传图像的代码 this gt load gt library upload ext pathinfo file name PATHINFO EXTENSION img name now ext imgConfig upload
  • php - 解析html页面

    div divbox div p para1 p p para2 p p para3 p table class table tr td td tr table p para4 p p para5 p 有人可以告诉我如何解析这个 html
  • PHP 检查当前日期是在设定日期之前还是之后

    我从数据库中提取一个日期 其格式为 dd mm YYYY 我想做的是检查当前日期 如果当前日期早于数据库中的日期 则需要打印数据库日期 如果是在之后 则需要打印 继续 有人能指出我正确的方向吗 if strtotime database d
  • 使用 php/regex 验证美国电话号码

    EDIT 我混合并修改了下面给出的两个答案 以形成完整的功能 现在它可以完成我想要的功能 然后是一些 所以我想我会将其发布在这里 以防其他人来寻找同样的东西 Function to analyze string against many p
  • PHP 表单 - 带验证蜜罐

    我有以下内容 效果很好 但对垃圾邮件机器人开放 我想放入蜜罐 而不是验证码 下面的代码适用于验证姓名 电子邮件 消息 但我无法让它与蜜罐一起工作 任何人都可以查看 蜜罐 代码并告诉我如何修复它吗 我希望表单给出 success2 不允许垃圾
  • 在本地 SDK 服务器上工作时,实时 Google App Engine 上出现 404

    我已经在GAE标准环境上部署了几个PHP应用程序 一切正常 现在我正在部署一个新应用程序 该应用程序位于由gcloudSDK按预期工作 终端命令 dev appserver py log level warning app yaml 问题是
  • 矩形超出边界是什么意思

    PPB Graphics2D PaintImageData 矩形超出界限是什么意思 我几乎在我检查的每一段代码中都看到了它 最新的代码是 define my consumer key define my consumer secret oa
  • 分页在服务器端好还是前端好? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在构建 Laravel Vue 应用程序 我想知道在后端使用分页还是在前端使用分页更好 我认为最好在每页发送尽可能少的数据的请求 但我想听听
  • 如何从日期中查找该月的最后一天?

    如何在 PHP 中获取该月的最后一天 Given a date 2009 11 23 我要2009 11 30 并给出 a date 2009 12 23 我要2009年12月31日 t返回给定日期所在月份的天数 请参阅的文档date ht

随机推荐

  • jQuery - 如果 URL 与 href 匹配,则将 LI 移至 UL 顶部?

    一直试图让它发挥作用 但没有成功 任何帮助 将不胜感激 搜索 UL 如果任何 href 等于当前 URL 则将其列表项移动到 UL 列表堆栈的顶部 var url window location toString partnerCharit
  • C、从文件读入结构体

    我已经为此苦苦挣扎了好几天 但我不明白为什么它不起作用 我正在尝试从文件中读取数字 数字如下所示 0 2012 1 1 2000 000000 0 2012 1 1 3000 000000 1 2012 1 1 4500 000000 我的
  • 如何使用 Google Cloud Endpoints 返回文件?

    我有一个方法可以生成带有一些数据库记录的 CSV 文件 public static void generateCsvForAttendees List
  • Python中的变量在使用前必须先定义吗?

    Python 很像 PHP 吗 我可以调用一个变量 如果它不存在 就会创建它 或者我需要声明它们 在 PHP 中 如果你调用一个变量并且它不存在 你会得到Notice Undefined variable 这不会创建它 再次执行相同的操作仍
  • 显示 pdf 时不显示 Favicon,如何使其显示?

    import React from react import CoursePDF from pdf course pdf function About return div p a href CoursePDF here a p div e
  • 无法让在 OS X 10.9 上构建的应用程序在 OS X 10.5 上运行

    Problem 我最近将构建环境升级到了 Xcode 6 1 1 在 OS X 10 9 上运行 现在我无法在 OS X Leopard 10 5 下再次运行我的应用程序 对于目标来说 Base SDK被设定为操作系统 X 10 6 and
  • AssociationTypeMismatch 和 FactoryGirl

    最近这件事引起了一些不满 似乎在我的黄瓜测试中使用工厂 在某些情况下会导致AssociationTypeMismatch错误例如 MyModel 65776650 expected got MyModel 28190030 ActiveRe
  • iPad/iPhone 上的 HTML5 视频背景

    I used 这个解决方案 https stackoverflow com a 3954583 269106使用 html5 视频作为我网站的背景 然而 它似乎不适用于 iPad iPhone 我得到的只是黑屏 并且视频没有调整大小 此外
  • 如何从 C# 执行 Java 程序?

    想知道是否有人知道在运行时从 C 代码执行 Java 命令行程序的好方法 它与执行本机 EXE 文件相同吗 它会同步运行还是异步运行 这意味着我可能必须等待线程完成才能找出结果 具体来说 我想从服务器端的 Web 应用程序调用一个小实用程序
  • 为什么 Data.Sequence 没有“insert”或“insertBy”,如何有效地实现它们?

    我对 Sequence 类型的接口中缺少这些函数感到困惑 因为 Data List 提供了这些函数 这里是否存在效率问题 或者只是对这些功能的需求不足 由于它们不是 Data Sequence 的一部分 我如何才能有效地实现它们以达到我的目
  • 应用程序无法正确初始化

    我们有一个使用 vs2010 构建的项目 它使用带有托管代码的 dll 我在 vs2010 中构建了 dll 目标 Framework NET 4 0 也尝试过 Client Profile 这是 2010 为您提供的唯一选项 当我去运行它
  • 如何使用函数式编程风格在 Scala 中管理数据库连接?

    我有一段使用数据库连接的 Scala 代码 def getAllProviderCodes implicit conf Configuration List String var conn java sql Connection null
  • Ruby 2.6.5 和 PostgreSQL pg-gem 分段错误

    从控制台我无法执行任何涉及数据库的操作 我遇到分段错误 rbenv versions 2 6 5 lib ruby gems 2 6 0 gems pg 1 1 4 lib pg rb 56 BUG Segmentation fault a
  • 从 s3 检索文件失败,并显示“提供的令牌已过期”。不过,相同的文件适用于 AWS CLI

    当我尝试从 s3 检索文件时遇到问题 我能够按预期连接到 s3 存储桶但是当我尝试检索该文件时 出现以下错误 正在从我的处获取凭据 aws credentials and 我可以使用 AWS CLI 从本地下载相同的文件 有什么想法这里可能
  • 重命名并保存 Outlook 中的附件

    我正在尝试使用 Outlook 规则保存附件并将其重命名为电子邮件正文中找到的单词 该单词位于冒号之后的第三行 我有一个规则集来运行这个脚本 Public Sub saveAttachtoNet itm As Outlook MailIte
  • java中检测多个按键

    我正在尝试创建一个平台 但我一直致力于如何同时检测多个按键 例如 如果我使用运行键并向前运行 然后我按下跳跃键 游戏仍然需要知道运行键是否被按下 这比我平常做的要复杂一些 通常我会允许每个Action直接改变游戏状态 这个例子展示了如何使用
  • jQuery:如何让 ajaxSend 在继续之前等待另一个 Ajax 响应?

    我正在使用 jQuery v 3 0 0 我需要ajax发送 http api jquery com ajaxsend 检查值是否存在于localStorage 将其添加到传出请求标头中 如果该值不存在于localStorage ajaxS
  • Laravel 5.1 一个表单两个提交按钮

    我正在使用 Laravel 5 1 我想制作一个带有两个提交按钮的表单 保存和保存草稿 但是当我发布表单时 我拥有除提交值之外的所有字段 我读到 当通过 ajax 发送表单时 Laravel 不会将提交按钮值放入 POST 中 所以您能帮我
  • WordPress 高级自定义字段插件 + Twig 模板

    我正在使用模板创建一个房地产网站Realia http themeforest net item realia responsive real estate wordpress theme 这个主题基于 Twig 文件 这是我的问题 我有一
  • 如何使用 Laravel 5.1 将空字符串更改为 null?

    在使用 Laravel 5 1 时 我尝试在使用 Eloquent ORM 将每个值保存到数据库之前检查每个值 我的逻辑是 如果该值为空字符串 则首先修剪该值 然后将其转换为null而不仅仅是一个空字符串 建议我创建一个 Trait 来重写