我正在关注此tutorial,直到我需要使用php artisan db:seed
生成种子。它总是说找不到我的Article
和User
类。
我一直在寻找解决方案:
composer dump-autoload
)composer install
require_once
,其中包含来自项目播种或根目录的模型的相对路径,但都不起作用。我认为这应该是开箱即用的,但它不是。我的问题是什么?我的解决方案是什么?
编辑1:有人要求您提供播种机代码!
播种机
<?php
use Illuminate\Database\Seeder;
class ArticlesTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
// Let's truncate our existing records to start from scratch.
Article::truncate();
$faker = \Faker\Factory::create();
// And now, let us create a few articles in our database:
for ($i = 0; $i < 50; $i ++) {
Article::create([
'title' => $faker->sentence,
'body' => $faker->paragraph,
]);
}
}
}
用户播种机
<?php
use Illuminate\Database\Seeder;
class UsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
// Let's clear the user table first
User::truncate();
$faker = \Faker\Factory::create();
// Let's make sure everyone has the same password and
// let's hash it before the loop, or else our seeder
// will be too slow.
$password = Hash::make('toptal');
User::create([
'name' => 'Administrator',
'email' => 'admin@test.com',
'password' => $password,
]);
// And now let's generate a few dozen users for our app:
for ($i = 0; $i < 10; $i ++) {
User:;create([
'name' => $faker->name,
'email' => $faker->email,
'password' => $password,
]);
}
}
}
数据库播种机
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$this->call(UsersTableSeeder::class);
$this->call(ArticlesTableSeeder::class);
}
}
答案 0 :(得分:0)
您应该导入已经使用过的模型,这样您就可以在代码中仅使用 Model 的类名,或者使用模型
例如,而不仅仅是User
,请使用App\User
。
如果您认为您将使用许多实例来使用User
类名称,请使用导入,以避免输入完全限定名称的麻烦。
<?php
...
use App\User;
...
$users = User::all(); // <-- now you can do this.
答案 1 :(得分:0)
首先,您应该导入完整的类路径,即 - App\User
。然后使用 - composer dump-autoload
答案 2 :(得分:0)
我遵循了同一教程。只需添加一行“使用App \ Article;”这样您的班级才能找到合适的班级。
就像在c / c ++中包含头文件路径一样。