【问题标题】:Getting preg_replace(): Parameter mismatch, pattern is a string while replacement is an array while doing update query in Laravel 5.2获取 preg_replace():参数不匹配,模式是一个字符串,而替换是一个数组,同时在 Laravel 5.2 中进行更新查询
【发布时间】:2016-10-04 13:55:08
【问题描述】:

我有如下 JSON 格式,

 {"projectId":"1","projectName":"My Project","total_project_cost":2200000,"total":2400000,"totalPercentFee":7,"adderArray":[{"name":"Adder 1","value":"100000","firmApercentage":"","firmBpercentage":""},{"name":"Adder 2","value":"100000","firmApercentage":"","firmBpercentage":""}]

在此插入 adderArray 我有用户 laravel $cast。

所以我的模型看起来像这样

protected $table = 'projects_percent_fee_management';

protected $casts = [
    'adder_data' => 'array',
    'project_breakdown' => 'array',
];

protected $fillable = ['project_id','company_id','total_project_cost','adder_data','total','total_percent_fee','project_breakdown','total_budget'];

Insert 运行良好,它在 adder_data 字段中正确插入了 adderArray 数据。

但是在更新时它给出了 preg_replace(): Parameter mismatch, pattern 是一个字符串,而替换是一个数组错误,并且在字段中它更新了“Array”。

【问题讨论】:

    标签: laravel laravel-5.2


    【解决方案1】:

    我认为在更新时,您正在尝试传递对应列不存在于表(数据库/模型)中的参数。

    要完成这项工作,请在模型中使用 $fillable 变量。例如:

    $fillable = ['column_1', 'column_2', 'column_3', 'column_4',..., 'column_n'];
    

    通过在模型中添加$fillable,更新查询将仅采用$fillable 数组中定义的更新参数。

    希望对您有所帮助。有关 Laravel 中质量分配的更多详细信息 - see this

    【讨论】:

      猜你喜欢
      • 2017-03-26
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 2016-01-25
      • 2015-06-19
      • 2023-03-29
      • 1970-01-01
      相关资源
      最近更新 更多