我将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
消息:缺少参数2 Illuminate \ Database \ Eloquent \ Model :: setAttribute(),在 /home/umpbiz/www/_dev/cargosystems/application/vendor/illuminate/database/Illuminate/Database/Eloquent/Model.php 在第2439行,并定义了文件名:Eloquent / Model.php行号: 2430
严重性:警告消息:isset中的偏移量类型为非法或为空 文件名:Support / Str.php行号:356
然后错误只会级联,页面会锁定。
其他模型/表没有问题,有人知道我要缺少什么吗?
答案 0 :(得分:1)
CREATED_AT
不能为false
,而应使用null
:
const CREATED_AT = null;