私は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')
));
}
}
?>
Login::create()
を使用するには、そのテーブルのEloquentモデルを作成する必要があります。あなたは簡単な職人のコマンドでそれを行うことができます:
$ php artisan generate:model Login
これにより、app/models
ディレクトリに次のような新しいEloquentモデルが生成されます。
class Login extends Eloquent {
protected $fillable = [];
protected $table = 'login';
}
その後、コードは機能するはずです。それでも解決しない場合は、composer dump-autoload
を実行してください。
[〜#〜]編集[〜#〜]
さて、問題はあなたの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
を実行すると正常に動作します。
とにかく走れ composer dump-autoload -o
データベースフォルダーはPSR-4で自動的に自動ロードされないため、オートローダーが新たにクラスを取得します。
これは私のために働いた
composer dump-autoload -o
同じ問題がありますが、名前空間を追加することで解決できます。
namespace yournamespace;
use App\Login;
use Illuminate\Database\Seeder;
私は同じ問題を経験しました。私の場合、composerは非常に古く、更新後はすべて正常に動作します。
composerコマンドで更新:
$ composer self-update
他の人の役に立つことを願っています。