Eloquent无法保存新对象:Illuminate \ Database \ Eloquent \ Model :: setAttribute()缺少参数2

时间:2018-10-15 17:59:24

标签: php laravel eloquent

我将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

然后错误只会级联,页面会锁定。

其他模型/表没有问题,有人知道我要缺少什么吗?

1 个答案:

答案 0 :(得分:1)

CREATED_AT不能为false,而应使用null

const CREATED_AT = null;