php - Eloquent 无法保存新对象:缺少 Illuminate\Database\Eloquent\Model::setAttribute() 的参数 2
问题描述
我将 Eloquent 用作独立包,在创建新对象时出现错误(但在保存现有对象时没有)。
测试用例:
$contact = new Carriercontact;
$contact->fname = 'test1';
$contact->save();
模型:
<?php
use \Illuminate\Database\Eloquent\Model as Eloquent;
class Carriercontact extends Eloquent {
// const CREATED_AT = 'create_dt'; // todo: add this
const CREATED_AT = false;
const UPDATED_AT = 'lst_chg';
protected $primaryKey = 'CarrContID';
public function company()
{
return $this->hasOne('Carrier', 'CarrID', 'CarrID');
}
public function getName()
{
ob_start();
if ( ! empty($this->salute)) echo trim($this->salute).' ';
if ( ! empty($this->fname)) echo trim($this->fname).' ';
if ( ! empty($this->minit)) echo trim($this->minit).' ';
if ( ! empty($this->lname)) echo trim($this->lname);
return trim(ob_get_clean());
}
}
桌子:
CREATE TABLE `carriercontacts` (
`CarrContID` INT(11) NOT NULL AUTO_INCREMENT,
`CarrID` INT(11) NULL DEFAULT NULL,
`compno` VARCHAR(12) NULL DEFAULT NULL,
`salute` VARCHAR(8) NULL DEFAULT NULL,
`fname` VARCHAR(20) NULL DEFAULT NULL,
`lname` VARCHAR(25) NULL DEFAULT NULL,
`minit` VARCHAR(1) NULL DEFAULT NULL,
`phone` VARCHAR(20) NULL DEFAULT NULL,
`faxno` VARCHAR(14) NULL DEFAULT NULL,
`cell` VARCHAR(15) NULL DEFAULT NULL,
`after_hrs` VARCHAR(20) NULL DEFAULT NULL,
`email` VARCHAR(75) NULL DEFAULT NULL,
`comments` LONGTEXT NULL,
`lst_chg` DATETIME NULL DEFAULT NULL,
`chg_by` VARCHAR(10) NULL DEFAULT NULL,
`is_deleted` TINYINT(1) UNSIGNED NULL DEFAULT '0',
PRIMARY KEY (`CarrContID`),
INDEX `CarrID` (`CarrID`),
INDEX `lname` (`lname`, `fname`, `minit`)
);
错误:
消息:array_key_exists():第一个参数应该是字符串或整数文件名:Eloquent/Model.php 行号:2649
消息:缺少 Illuminate\Database\Eloquent\Model::setAttribute() 的参数 2,在 /home/umpbiz/www/_dev/cargosystems/application/vendor/illuminate/database/Illuminate/Database/Eloquent/Model.php 中调用第 2439 行并定义文件名:Eloquent/Model.php 行号:2430
严重性:警告消息:isset 中的偏移类型非法或为空文件名:Support/Str.php 行号:356
然后错误只是级联并且页面锁定。
其他模型/表格没有问题,有人知道我缺少什么吗?
解决方案
CREATED_AT
不能false
,null
改用:
const CREATED_AT = null;
推荐阅读
- android - FFmpeg忽略开始时间修剪音频文件android
- python - 来自多个数据帧的多个直方图在熊猫中合二为一
- x86 - 平面地址空间、线性地址、基地址、有效地址计算有什么区别
- java - 从不同的实体获取属性
- json - 使用 JSONSerialization 解析 YouTube json
- java - 将60FPS游戏克隆成四屏
- python - 如何使用python以字典格式合并多个函数的输出?
- c# - ASP.NET Core Razor PageModel ModelState 无效,因为 Id==0 的新导航属性
- python - 如何向网页添加内容?
- sql-server - 无法使用服务器名称连接 SQL Server