यहाँ भविष्य के पाठक के लिए पूर्ण उत्तर है। ध्यान दें कि यह केवल Laravel 5+ में संभव है।
सबसे पहले आपको सिद्धांत / सुस्त पैकेज की आवश्यकता होगी :
composer require doctrine/dbal
अब आप अपने माइग्रेशन में कॉलम को अशक्त बनाने के लिए ऐसा कर सकते हैं:
public function up()
{
Schema::table('users', function (Blueprint $table) {
// change() tells the Schema builder that we are altering a table
$table->integer('user_id')->unsigned()->nullable()->change();
});
}
आप सोच रहे होंगे कि इस ऑपरेशन को कैसे वापस किया जाए। अफसोस की बात है कि यह वाक्य रचना समर्थित नहीं है:
// Sadly does not work :'(
$table->integer('user_id')->unsigned()->change();
माइग्रेशन को वापस करने के लिए यह सही सिंटैक्स है:
$table->integer('user_id')->unsigned()->nullable(false)->change();
या, यदि आप चाहें, तो आप एक कच्चा प्रश्न लिख सकते हैं:
public function down()
{
/* Make user_id un-nullable */
DB::statement('UPDATE `users` SET `user_id` = 0 WHERE `user_id` IS NULL;');
DB::statement('ALTER TABLE `users` MODIFY `user_id` INTEGER UNSIGNED NOT NULL;');
}
उम्मीद है कि आपको यह उत्तर उपयोगी लगेगा। :)