忽略更新函数 Laravel 5 的唯一验证

2023-12-09

我有这个customer当您创建时的模型具有独特的phone_num。它在创建中工作得很好,但在我的更新功能中工作得很好,这是一个基于自动填充值的表单id。如果用户只更新了address正如预期的unique验证将再次触发说The phone num has already been taken.我该如何处理这个问题?我希望用户能够更新其信息而忽略unique验证如果phone_num仍然是相同的,因此允许unique验证如果用户选择更改phone_num

My code:

public function update($id)
{
    $rules = array(
        'title'             => 'required',
        'firstname'         => 'required',
        'lastname'          => 'required',
        'gender'            => 'required',
        'birthdate'         => 'required',
        'age_bracket'       => 'required',
        'addr1'             => 'required',
        'addr2'             => 'required',
        'addr3'             => 'required',
        'addr4'             => 'required',
        'town'              => 'required',
        'country'           => 'required',
        'postcode'          => 'required',
        'phone_num'         => 'required|unique:customers',
        'phone_type'        => 'required',
        'work_status'       => 'required',
        'home_status'       => 'required',
        'marital_status'    => 'required',

    );

    $validator = Validator::make(Input::all(), $rules);


    // Check if all fields is filled
    if ($validator->fails()) 
    {
        return Redirect::to('customer/'.$id.'/edit')->withErrors($validator);
    }
    else
    {
        $customer = Customer::find($id);
        $customer->title           = Input::get('title');
        $customer->gender          = Input::get('gender');
        $customer->firstname       = Input::get('firstname');
        $customer->lastname        = Input::get('lastname');
        $customer->postcode        = Input::get('postcode');
        $customer->addr1           = Input::get('addr1');
        $customer->addr2           = Input::get('addr2');
        $customer->addr3           = Input::get('addr3');
        $customer->addr4           = Input::get('addr4');
        $customer->addr4           = Input::get('addr4');
        $customer->town            = Input::get('town');
        $customer->country         = Input::get('country');
        $customer->phone_num       = Input::get('phone_num');
        $customer->phone_type      = Input::get('phone_type');
        $customer->birthdate       = Input::get('birthdate');
        $customer->work_status     = Input::get('work_status');
        $customer->home_status     = Input::get('home_status');
        $customer->marital_status  = Input::get('marital_status');
        $customer->agebracket      = Input::get('age_bracket');

        if($customer->save())
        {
            Session::flash('alert-success', 'Form Submitted Successfully.');
        }
        else
        {
            Session::flash('alert-danger', 'Error on submitting form.');
        }

        return Redirect::to('customer/'.$id.'/edit');

    }
}

The unique规则为此目的需要一些额外的参数,看起来像unique:table,column,except,idColumn

所以就你而言,except将是id and idColumn可能是你的 id 列的名称id.

因此,考虑到这一点,您希望验证规则是......

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

忽略更新函数 Laravel 5 的唯一验证 的相关文章

  • 如何在 标签中用 %20 替换空格

    我想替换 html 文本的图像标签中的所有空格 Example img src to img src photo 201 jpg 我没有找到 preg replace 的解决方案 但它可能是一个简单的正则表达式行 谢谢 Edit 抱歉各位
  • Instagram 如何使用 Amazon S3?

    在将文件上传到 Amazon S3 时 我需要深入了解 Instagram 的工程 我刚刚开始使用 S3 我认为 Instagram 是一个值得效仿的好模式 因为他们每天上传数千张图片 我的应用程序有点相似 用户上传图片 可以删除自己的图片
  • 在 symfony2 中为特定控制器设置 max_execution_time

    Using ini set 我可以扩展最大执行时间一个脚本的 在Symfony2 我可以添加ini set to web app php and web app dev php将增加的执行时间应用于所有控制器 但在这种情况下 我只想扩展最大
  • symfony 2 形式的函数 getName 做什么

    这是我的表格类 class CommentType extends AbstractType public function buildForm FormBuilder builder array options builder gt ad
  • 如何在 PHP 中正确分割路径

    执行以下操作的最佳方法是什么 我通过 AJAX 请求获取路径 e g dir1 dir2 dir3 dir4 我需要在我的网页上这样展示它 dir1 gt gt dir2 gt gt dir3 gt gt dir4 它们每个都是 html
  • 将 SQL 中的数据存储在数组中

    我正在尝试将 sql 数据库中的数据存储到数组中 目前我有这个 query mysql query SELECT FROM InspEmail WHERE Company LIKE company while row mysql fetch
  • FPDF - 内嵌粗体文本

    我正在尝试从 PHP 创建 PDF 出于法律原因 我们需要将免责声明的一部分设为粗体 并且需要概述免责声明 我当前的代码使用 if isset POST optout POST optout yes pdf gt Ln 5 pdf gt S
  • 适用于 Windows 的 PHP 支持的 GUI 应用程序

    我知道 PHP 是一种解释性语言 对于基于 Web 的事物来说 不是为在实际操作系统上运行 GUI 应用程序而设计的 但是有没有办法呢 基本上 是否有一个框架 系统允许我创建 本机 基本上是二进制文件 exe 看起来像带有本机控件和所有内容
  • WooCommerce:用文本覆盖购物车价格

    我们有很多产品具有以下功能 No price 零价格 我们让它们可以通过内置挂钩购买 但购物车仍然将它们显示为具有0 price结账时 我们希望购物车和结帐摘要显示 特殊订单 或任何其他文本 但 WooCommerce 似乎使基于文本的价格
  • CSV 从 UTF8 到 ISO-8859-1

    我正在尝试修改我的 CSV 导出 但它不会将我的 CSV 从 UTF 8 转换 保存为 ISO 8859 1 请问我做错了什么吗 实际上自从修改了这个之后 我得到了一个空的 CSV 文件 php 7 0 x function my Gene
  • 登录后所有页面都应该是https吗?

    这有点难以解释 但我会尽力 有一个网站 每个页面上都有登录表单 其中包含用户名 密码字段 这些页面未使用 SSL 用户填写用户名 密码并提交表单后 表单将被发送到 https 的身份验证页面 对于这种情况我有几个疑问 向 https 页面提
  • 疯狂的 crond 行为。不断使 bash 进程失效

    我有一个看起来像这样的 crontab SHELL bin bash PATH sbin bin usr sbin usr bin MAILTO root HOME 0 59 var www html private fivemin zda
  • 在 MySQL 中搜索多个单词

    我使用 HTML 表单来允许用户查找数据库表中的条目
  • 需要使用 php 从远程服务器下载与 $_FILES 相同的内容[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 好的 我有处理图像上传的 php 代
  • php,in_array,0值

    我试图理解in array下一个场景的行为 arr array 2 gt Bye 52 77 3 gt Hey var dump in array 0 arr 返回值in array 是布尔值true 正如你所看到的no值等于0 所以有人可
  • 从多个选择列表中插入数据到mysql数据库(html形式)

    我制作了一个表格 其中有商店的 ID
  • $_SESSION 中保存大量信息可以吗?

    我需要存储许多数组 SESSION以防止从 MySQL 检索信息 可以吗 其中 太多 的信息有多少 SESSION还是没有 太多 谢谢 附 或者更好地使用http php net manual en book memcache php ht
  • Laravel 5 注销特定用户

    在我的 laravel 5 应用程序中 有一个功能允许具有管理员角色的用户重置非管理员的任何人的密码 但这不会强制该人注销并再次登录 更改密码后如何强制用户注销 我没有对用于验证用户身份或任何内容的中间件进行任何更改 我不知道它是否有效 但
  • 处理查询字符串参数时 Codeigniter 缓存问题

    问候 我正在编写一个 CI Web 应用程序 它实现标准文件缓存功能 如下所示 this gt output gt cache n 我使用了段和查询字符串参数的组合 因此似乎遇到了问题 我在用例和输出类代码中看到的是 缓存仅基于段 像这样
  • PHP 中的 Zip 流

    我有一个 PHP 脚本 可以动态创建 zip 文件并强制浏览器下载该 zip 文件 问题是 我可以直接将zip文件写入连接到用户浏览器的输出流 而不是先将其保存为服务器上的真实文件 然后发送文件吗 提前致谢 如果您的 Web 服务器运行的是

随机推荐