Laravel 5.5 - Как создать значение столбца `absolute_id` на основе значения` id`? - PullRequest
0 голосов
/ 26 апреля 2018

Я делаю тест, но не знаю, как это сделать с помощью файла миграции laravel. Короче говоря, есть поле с автоинкрементом id (которое всегда будет положительным целым числом). Но я также хочу поле negative_id, которое будет иметь значение id * -1 и будет автоматически вставлено в синхронизацию, когда id будет вставлено в базу данных. Поэтому, когда добавляется первый пользователь, id автоматически добавляется как 1, поэтому negative_id следует добавить как -1 для этой строки, начиная с 1 * -1 = -1. Таблица должна выглядеть так:

| id | negative_id 
------------------
| 1  | -1                   
| 2  | -2                   
| 3  | -3  

Ниже мой текущий файл миграции:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration {
    public function up(){
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('negative_id'); // how to make this id*-1 value
        });
    }

    public function down(){
        Schema::dropIfExists('users');
    }

Есть идеи, как сделать это из файла миграции?

1 Ответ

0 голосов
/ 27 апреля 2018

Возможно, вы захотите взглянуть на сгенерированные столбцы

$table->integer('negative_id')->virtualAs('id*-1');

Посмотрите на эту ссылку для получения дополнительной информации.

...