Сеялка 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')
));
}
}?>

10

Решение

Вам нужно создать модель Eloquent для этой таблицы, чтобы использовать Login::create(), Вы можете сделать это с помощью простой команды ремесленника:

$ php artisan generate:model Login

Это создаст новую модель Eloquent в app/models каталог, который должен выглядеть следующим образом.

class Login extends Eloquent {

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

}

Ваш код должен работать после этого. Если он все еще не уверен, что вы бежите composer dump-autoload,

7

Другие решения

РЕДАКТИРОВАТЬ

Теперь я вижу, проблема с вашим 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 это будет работать нормально.

15

Просто беги
composer dump-autoload -o
для автозагрузчика, чтобы выбрать новые классы, потому что папка базы данных не автоматически загружается с PSR-4.

8

Это сработало для меня

composer dump-autoload -o
2

У меня та же проблема, но вы можете решить ее, добавив свое пространство имен:

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

Я испытал ту же проблему. В моем случае, композитор был очень стар, и после его обновления все работает нормально.

Обновите композитор с помощью команды:

$ composer самообновление

Надеюсь, что это может помочь другим.

0