Eloquent не может сохранить новый объект: отсутствует аргумент 2 для Illuminate \ Database \ Eloquent \ Model :: setAttribute () - PullRequest
0 голосов
/ 15 октября 2018

Я использую 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 (): первый аргумент должен быть либо строкой, либоinteger Имя файла: Eloquent / Model.php Номер строки: 2649

Сообщение: отсутствует аргумент 2 для Illuminate \ Database \ Eloquent \ Model :: setAttribute (), вызываемой в / home / umpbiz / www / _dev / cargosystems /приложение / поставщик / подсветка / база данных / подсветка / база данных / Eloquent / Model.php в строке 2439 и определенное имя файла: Eloquent / Model.php Номер строки: 2430

Серьезность: Предупреждение: Недопустимый тип смещения в isset илипустое имя файла: Support / Str.php Номер строки: 356

Тогда ошибки просто каскадно и страница блокируется.

Нет проблем с другими моделями / таблицами, у кого-нибудь есть идеячего мне не хватает?

1 Ответ

0 голосов
/ 15 октября 2018

CREATED_AT не может быть false, используйте null вместо:

const CREATED_AT = null;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...