web-dev-qa-db-ja.com

Laravelシーダーでエラーが発生します。クラスが見つかりません

私はLaravelの初心者であり、ログインテーブルから認証する方法を私に教えています。テーブルを移行して作成しました。ここで、データをログインテーブルですが、コマンドプロンプトで継続的にエラーが発生し、Fatal Error, class login not foundそして、私は何を逃したのか分かりません。だから誰でも私を助けてください。ここに私が持っているコードがあります、そしてはい私はLaravel 4.3を使用しています

<?php
class loginTableSeeder extends Seeder
{
    public function run()
    {
        DB::table('login')->delete();
        login::create(array(
            'username'  =>  'sanju',
            'password'  =>  Hash::make('sanju')
            ));
    }
}


?> 
13
samhu kiklsk

Login::create()を使用するには、そのテーブルのEloquentモデルを作成する必要があります。あなたは簡単な職人のコマンドでそれを行うことができます:

$ php artisan generate:model Login

これにより、app/modelsディレクトリに次のような新しいEloquentモデルが生成されます。

class Login extends Eloquent {

    protected $fillable = [];
    protected $table = 'login';

}

その後、コードは機能するはずです。それでも解決しない場合は、composer dump-autoloadを実行してください。

8
Bogdan

[〜#〜]編集[〜#〜]

さて、問題はあなたのloginクラスにあります(以前の質問のフォーマットでは正確なエラーは判読できませんでした)。 loginクラスがあるファイルの名前とクラスの名前をもう一度確認する必要があります。慣例では、ファイル名はLogin.php(大文字)で、クラスの名前もLogin(大文字)にする必要があります。また、Loginクラスがどの名前空間であるかを確認する必要があります。 App名前空間で定義されている場合は、LoginTableSeederに追加する必要があります。

use App\Login;

<?phpの後の次の行

したがって、基本的にファイルの先頭は次のようになります。

<?php

    use App\Login;
    use Illuminate\Database\Seeder;

以前の回答

あなたは正確なエラーが何であるかを説明しませんでした(おそらくエラーはSeederクラスに関するものです):

database/seeds/DatabaseSeeder.phpでは、次のようにログインシーダーを実行する必要があります。

$this->call('LoginTableSeeder');

database/seedsファイルLoginTableSeeder.phpに大文字で始めてください。

これで、ファイルLoginTableSeeder.phpファイルは次のようになります。

<?php

use Illuminate\Database\Seeder;

class LoginTableSeeder extends Seeder
{
    public function run()
    {

        // your code goes here
    }
}

Seederをファイルの先頭にuseを付けてインポートする必要があります。クラス名も大文字で始める必要があります。

これでcomposer dump-autoloadを実行する必要があり、php artisan db:seedを実行すると正常に動作します。

15

とにかく走れ composer dump-autoload -oデータベースフォルダーはPSR-4で自動的に自動ロードされないため、オートローダーが新たにクラスを取得します。

11
DannyFeliz

これは私のために働いた

composer dump-autoload -o 
2
rabin

同じ問題がありますが、名前空間を追加することで解決できます。

namespace yournamespace; 
use App\Login;
use Illuminate\Database\Seeder;
1

私は同じ問題を経験しました。私の場合、composerは非常に古く、更新後はすべて正常に動作します。

composerコマンドで更新:

$ composer self-update

他の人の役に立つことを願っています。

0
Fernando Kosh