『php artisan db:seed』を実行した際に下記のエラーが発生。
$ php artisan db:seed
Seeding: Database\Seeders\PostsTableSeeder
Error
Class "Database\Seeders\DB" not found
at C:\xampp\htdocs\CRUD_Laravel\database\seeders\PostsTableSeeder.php:19
15▕ {
16▕ $params = [
17▕ 'message' => 'Hello',
18▕ ];
➜ 19▕ DB::Table('posts')->insert($params);
20▕
21▕ $params = [
22▕ 'message' => 'World',
23▕ ];
1 C:\xampp\htdocs\CRUD_Laravel\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:36
Database\Seeders\PostsTableSeeder::run()
2 C:\xampp\htdocs\CRUD_Laravel\vendor\laravel\framework\src\Illuminate\Container\Util.php:40
Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
エラーの原因
DBファサードを使用しているのにuse宣言をしていないため起きていた。
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
//useにDBファサードの宣言がない!
class PostsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$params = [
'message' => 'Hello',
];
DB::Table('posts')->insert($params); //DBファサード部分
$params = [
'message' => 'World',
];
DB::Table('posts')->insert($params); //DBファサード部分
}
}
エラー解決方法
useに『use Illuminate\Support\Facades\DB;』を記述する。
これで使用できるようになる。
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB; //use宣言を追加!
class PostsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$params = [
'message' => 'Hello',
];
DB::Table('posts')->insert($params); //DBファサード部分
$params = [
'message' => 'World',
];
DB::Table('posts')->insert($params); //DBファサード部分
}
}