Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel - Creating tables dynamically (without migration)

I'm trying to create a table dynamically upon an admin request, and while it seems it should be straightforward like most of Laravel's documentation, I can't seem to create a table. Though I can drop tables, and add or drop columns as I wish.

This is my basic code model:

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

public static function createTable()
{
    Schema::create('randomName', function($table) {
        $table->increments('id');
        $table->string('name');
    });
}

What could possibly be the problem here? Unfortunately I don't receive any errors so not sure how to debug it.

Any advice? Thanks in advance!

like image 717
Shay Avatar asked May 07 '15 08:05

Shay


2 Answers

Ugh, never mind... I worked on it for long enough, and the solution as always was... Very simple.

I just had to figure a connection for the database first, so instead of

Schema::create('tableName', function($table)
{           
    $table->increments('id');
});

It is

Schema::connection('mysql')->create('tableName', function($table)
{
    $table->increments('id');
});

Hope this helps someone someday in the future!

like image 53
Shay Avatar answered Nov 12 '22 14:11

Shay


This one is even better.

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

Schema::create('tableName', function (Blueprint $table) {
        $table->increments('id');
        $table->timestamps();
    });
like image 38
YakuZa Avatar answered Nov 12 '22 15:11

YakuZa