Laravel设置服务提供商数据库迁移

时间:2016-11-24 21:54:16

标签: mysql laravel

我通过迁移创建了设置表,并实现了一个SettingsServiceProvider(基于此帖子Laravel - Set global variable from settings table)。现在它说无法找到基表。当然不是,因为我需要先运行迁移。

[Illuminate \ Database \ QueryException] SQLSTATE [42S02]:未找到基表或视图:1146表'db.settings'不存在(SQL:选择值,设置中的名称)

任何想法该怎么办?我当然可以手动创建表格,但这会破坏迁移的想法......

任何帮助将不胜感激。我正在使用Laravel 5.3。

2016年11月25日更新 - 添加了代码段

服务提供商

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class SettingsServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {
        config()->set('settings', \App\Setting::pluck('value', 'name')->all());
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

移植

<?php

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

class CreateSettingsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('settings', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->integer('value');
            $table->timestamps();
        });
    }

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

0 个答案:

没有答案