2013-06-08 5 views
3

Я так много пробовал, чтобы заставить это семя базы данных работать, но я все равно получаю Class 'Account' not found, хотя у меня есть имена, где я должен.Laravel 4 DatabaseSeed.php throws класс не найден

Ошибка при запуске php artisan db: seed на $accountOut = Account::create(array( где Account - это то, что выбрасывает ошибку. Я утверждаю, что использование неправильно? Если бы я удалил все пространство имен, у меня вообще не было проблем.

Мой Account.php файл:

<?php namespace App\Models; 

class Account extends \Eloquent { 

/** 
* The database table used by the model. 
* 
* @var string 
*/ 
protected $table = 'account'; 

/**public function user() 
{ 
    return $this-belongsTo('User'); 
}*/ 
} 

Мой файл семян:

<?php 

use App\Models; 

class TransactionSeeder extends Seeder { 

public function run() 
{ 
    DB::table('transaction')->delete(); 
    DB::table('account')->delete(); 

    $accountOut = Account::create(array(
     'name' => 'Checking', 
     'origin' => 'Bank' 
    )); 

    $accountIn = Account::create(array(
     'name' => 'Stuff', 
     'origin' => 'Expense' 
    )); 

    $adminUser = Sentry::getUserProvider()->findByLogin('[email protected]'); 

    Transaction::create(array(
     'account_id_in' => $accountIn->id, 
     'account_id_out' => $accountOut->id, 
     'amount' => 300.00 
    )); 

} 

} 

ответ

5

Я чувствую себя глупо, но вместо того, выкрикивая use App\Models бы вы назвали из use App\Models\Account, и она работает как положено.

Тогда не забудьте запустить php composer.phar dump-autoload

1

У меня были подобные проблемы и предваряя мои классы с оператором пространства имен их решали.

Попробуйте \Account

+0

По-прежнему такая же ошибка. Это ошибка Symfony, которая все еще бросается в ту же строку после того, как я положил в '\ Account' замену' Account' – tuck

+0

Если я изменил '\ Account' на' $ accountOut = \ App \ Models \ Account :: create (array ('it работает. Так что, похоже, оператор use игнорируется. – tuck

Смежные вопросы