Я новичок в 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')
));
}
}?>
Вам нужно создать модель Eloquent для этой таблицы, чтобы использовать Login::create()
, Вы можете сделать это с помощью простой команды ремесленника:
$ php artisan generate:model Login
Это создаст новую модель Eloquent в app/models
каталог, который должен выглядеть следующим образом.
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
Вы должны запустить Login seeder следующим образом:
$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 самообновление
Надеюсь, что это может помочь другим.