14

私は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')
            ));
    }
}


?> 
4

7 に答える 7

15

編集

問題はクラスにあることがわかりました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すると正常に動作します。

于 2014-10-13T17:32:26.373 に答える
9

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

$ php artisan generate:model Login

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

class Login extends Eloquent {

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

}

その後、コードは機能するはずです。それでも実行できない場合は、composer dump-autoload.

于 2014-10-13T17:43:06.283 に答える
1

私は同じ問題を抱えていますが、名前空間を追加することで解決できます:

namespace yournamespace; 
use App\Login;
use Illuminate\Database\Seeder;
于 2016-08-21T14:49:06.253 に答える
0

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

次のコマンドで composer を更新します。

$ composer 自己更新

それが他の人を助けることを願っています。

于 2016-06-03T16:28:36.273 に答える