मैं एक तालिका संपादित कर रहा हूं ताकि वह बहुरूपी संबंधों का उपयोग करे:

public function up()
    {
        Schema::table('locations', function (Blueprint $table) {
            $table->morphs('location');
        });
    }

लेकिन मुझे नहीं पता कि इस प्रवास को उलटने के लिए सबसे उपयुक्त तरीका क्या है। क्या मुझे दो कॉलम छोड़ना होगा जो इसे बनाता है और इंडेक्स स्वयं, या लैरवेल में एक पंक्ति में ऐसा करने का कोई तरीका है? धन्यवाद।

1
party-ring 18 जिंदा 2019, 18:25

2 जवाब

सबसे बढ़िया उत्तर

इसे Blueprint एपीआई में मिला:

public function dropMorphs($name, $indexName = null)
{
    $this->dropIndex($indexName ?: $this->createIndexName('index', ["{$name}_type", "{$name}_id"]));

    $this->dropColumn("{$name}_type", "{$name}_id");
}

तो बस $table->dropMorphs('location');

5
Jeff 18 जिंदा 2019, 18:28

अगर कोई इस पोस्ट पर एक ही मुद्दे पर काम करते हुए आता है, केवल मेरे जैसे SQLite डीबी के साथ, SQLite कॉलम और इंडेक्स को एक बार में छोड़ने का समर्थन नहीं करता है। आपको इसे मैन्युअल रूप से करना होगा, और इसे कई संशोधनों में विभाजित करना होगा जैसे:

public function down(){
    Schema::table('locations', function (Blueprint $table) {
        $table->dropcolumn('location_id');
    });

    Schema::table('locations', function (Blueprint $table) {
        $table->dropcolumn('location_type');
    });
}
0
beginswithaJ 15 अप्रैल 2020, 13:49