Laravel 5 中的文件上传和数据库设计

File Upload and Database design in Laravel 5

在我的项目中,我有用户table,我想存储每个用户上传的文件。 我的数据库方法 - 我想要以下设计,而不是直接将每个用户的文件存储在每个用户的行中:

+-----------+-------------+--------------+
|  user_id  |  user_name  |  folder_path |
+-----------+-------------+--------------+
|  U123     |  Sherlock   |  xyzdsalfb   |
+-----------+-------------+--------------+

此处数据库中的每个用户行将包含 link/path 到每个用户专用的 folder/repo,以便只有该用户可以使用登录访问它。 然后我需要在用户仪表板页面上的列表中显示用户上传的文件。

当前的数据库设计是:

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

class CreateUsersTable extends Migration {

    public function up()
    {
        Schema::create('users', function(Blueprint $table)
        {
            $table->increments('id'); //we need enroll number too
            $table->string('name');
            $table->string('enroll_no')->unique(); //we'll change this to bigInteger
            $table->string('course');
            $table->string('majors');
            $table->string('email')->unique();
            $table->string('password', 60);
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('users');
    }
}

怎么做。

您需要创建一个新的迁移以将列添加到您的 table。 Per the docs 第一 运行:

php artisan make:migration add_your_columns_to_users_table --table=users

这将生成您的迁移。您需要查看 Laravel 文档以使用迁移向数据库添加列以添加正确的列:

http://laravel.com/docs/5.0/schema#adding-columns

folder_path 添加列的简单示例是:

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

class CreateUsersTable extends Migration {

    public function up()
    {
        Schema::table('users', function(Blueprint $table)
        {
            $table->string('folder_path');
        });
    }

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