How can I make relation between two table using string format? I’m getting the error
SQLSTATE[HY000]: General error: 1005 Can’t create table
....ordercustomizes(errno: 150 “Foreign key constraint is incorrectly formed”) (SQL: alter tableordercustomizesadd constraintordercustomizes_userorder_id_foreignforeign key (userorder_id) referencesuserorders(order_number) on delete cascade)
    Schema::create('ordercustomizes', function (Blueprint $table) {
        $table->engine = 'InnoDB';
        $table->increments('id');
        $table->string('userorder_id');
        $table->integer('product_id')->unsigned();
        $table->integer('customizetitle_id')->unsigned();
        $table->integer('customizeproduct_id')->unsigned();
        $table->timestamps();
            $table->foreign('userorder_id')
            ->references('order_number')
            ->on('userorders')
            ->onDelete('cascade');
main table:
   Schema::create('userorders', function (Blueprint $table) {
        $table->engine = 'InnoDB';
        $table->increments('id');
        $table->integer('product_id')->unsigned();
        $table->integer('storeinfo_id')->unsigned();
        $table->integer('user_id')->unsigned();
         $table->string('order_number');          
Advertisement
Answer
You need to create an index for the order_number field (in userorders table)  first.
You can do it at table creation using: $table->string('order_number')->index();
Or you can alter the existing table and just create a new index using: $table->index('order_number');