我通过迁移创建了设置表,并实现了一个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');
}
}