Исключение запроса orm аналога (Data Mapper) Laravel 5.2.33

я собираюсь

Неопределенный столбец: 7 ОШИБКА: нет существующего столбца «users_id_seq»
ЛИНИЯ 1: … ated_at «,» updated_at «) значения ($ 1, $ 2) возвращают» users_id _…
^ (SQL: вставить в значения «users» («creation_at», «updated_at») (2016-05-26 15:19:02, 2016-05-26 15:19:02) возвращая «users_id_seq»)

При запуске вставки из контроллера

это мой класс сущности

namespace App\Entities\Users;
use Analogue\ORM\Entity;

class BaseEntity extends Entity
{
private $remember_token;
private $created_at;
private $updated_at;
private $deleted_at;
private $id;
private $name;
private $email;
private $password;
private $identification;
private $cellphone;

Here are getter/setter pairs for each property

}

И это мой класс карты

namespace App\Entities\Users;

use App\Entities\BaseEntityMap;

class UserMap extends BaseEntityMap
{
protected $primaryKey = 'id';
public $softDeletes = true;
public $timestamps = true;
}

И это класс контроллера

namespace App\Http\Controllers\Users;

use App\Http\Controllers\Controller;
use App\Http\ServiceResponse;
use App\Entities\Users\User;
use Faker\Factory as Faker;
use Carbon\Carbon;
use Monolog\Logger as Log;

class UserController extends Controller
{
public function createRandom()
{
$logger = new Log("error");
$randomUsers = array();
for($i=0; $i<1000; $i++)
{
$userMapper = $this->mapper->mapper(User::class);
$faker = Faker::create();
$user = new User();
$user->setName($faker->name);
$user->setEmail($faker->email);
$user->setPassword(bcrypt(rand(1000, 9999)));
$user->setIdentification(bcrypt(rand(1000000, 100000000)));
$user->setCellphone($faker->phoneNumber);
//$user->setCreatedAt(Carbon::now());
//$user->setUpdatedAt(Carbon::now());
//$user->setDeletedAt(null);
$logger->error("user --> " . print_r($user, true));
$userMapper->store($user);
$randomUsers[] = $user->convertToStdClass();
}
$response = new ServiceResponse(0, "createRandom", $randomUsers, "success");
return response()->json($response->toJson());
}
}

И вот как выглядит запрос в файле журнала postgres

2016-05-26 10:22:17 COT [4777-1] postgres@ewbackend ERROR:  no existe     la columna «users_id_seq» en carácter 76
2016-05-26 10:22:17 COT [4777-2] postgres@ewbackend SENTENCIA:  insert    into "users" ("created_at", "updated_at") values ($1, $2) returning   "users_id_seq"

На английском языке говорится, что столбец users_id_seq не существует, но я уже проверяю БД, и эта последовательность существует.

И это sql для пользовательской таблицы

-- Table: public.users

-- DROP TABLE public.users;

CREATE TABLE public.users
(
id integer NOT NULL DEFAULT nextval('users_id_seq'::regclass),
name character varying(255) NOT NULL,
email character varying(255) NOT NULL,
password character varying(255) NOT NULL,
identification character varying(255) NOT NULL,
cellphone character varying(255) NOT NULL,
remember_token character varying(100),
created_at timestamp(0) without time zone,
updated_at timestamp(0) without time zone,
deleted_at timestamp(0) without time zone,
CONSTRAINT users_pkey PRIMARY KEY (id),
CONSTRAINT users_email_unique UNIQUE (email),
CONSTRAINT users_identification_unique UNIQUE (identification)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.users
OWNER TO postgres;

Я также проверяю таблицу (я создал с миграцией, просто добавьте несколько полей в пользовательский пример миграции, включенный в laravel 5.2.33), и все столбцы там, с правильными типами

Я пытаюсь назначить даты самостоятельно, но это не имеет значения.

Я также пытаюсь выйти из timestamps = true на моем классе карты, но затем я вижу другую ошибку, в которой у запроса нет полей или значений в файле журнала postgres, и мне нужны столбцы timestamps.

Журнал показывает пользовательский экземпляр, показывает, что все данные были установлены правильно.

Я также пытаюсь сделать свойства сущностей общедоступными, а не частными, но это не работает.

Поэтому я ценю любые идеи по этому вопросу. Также, если вы можете сказать мне, поддерживает ли аналог транзакции postgres (набор запросов, который выполняется как один, чтобы завершиться неудачей, если один из запросов завершился неудачей, или зафиксировать, только если все запросы были успешными операциями)

0

Решение

Аналоговые сущности используют магические сеттеры-геттеры, поэтому вам не нужно вручную добавлять частные свойства + геттеры и сеттеры.

Ты пробовал :

класс BaseEntity расширяет сущность
{

}

И установите вашу колонку так:


$user->name($faker->name);
$user->email($faker->email);
etc..

И да, он поддерживает транзакции на Postgres.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector