larabook / gateway

A Laravel package for connecting to all Iranian Banks
MIT License
244 stars 188 forks source link

در ماگریشن اضافه کردن توضیحات به جدول تراکنشها به صورت مستقیم از نام جدول استفاده شده است که اشتباه است و باید از فایل کانفیگ خوانده شود #221

Open farshadfahimi opened 4 years ago

farshadfahimi commented 4 years ago

در حال حاضر اطلاعات درون ماگریشن به صورت زیر میباشد


<?php

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

class AddDescriptionToGatewayTransactions extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('gateway_transactions', function (Blueprint $table) {
            //
            $table->text('description')->after('ip')->nullable();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('gateway_transactions', function (Blueprint $table) {
            //
            $table->dropColumn('description');

        });
    }
}

که باید تغییر کند و به صورت زیر ایجاد شود. چون در زمان ماگریت امکان دارد کاربر نام جدول پیش فرض را تغییر داده باشد و با خطا مواجه میشود

<?php

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

class AddDescriptionToGatewayTransactions extends Migration
{
    function getTable()
    {
        return config('gateway.table','gateway_transactions');
    }

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table($this->getTable(), function (Blueprint $table) {
            $table->text('description')->after('ip')->nullable();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table($this->getTable(), function (Blueprint $table) {
            //
            $table->dropColumn('description');

        });
    }
}