Laravel PHP Fatal Error Class не найден при раздаче

Это мой ContentSeeder.php

 <?php

 use App\Models\Page;

 class ContentSeeder extends Seeder {

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

    Page::create(array(
        'title'   => 'About us',
        'slug'    => 'about-us',
        'body'    => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
        'user_id' => 1,
    ));

    Page::create(array(
        'title'   => 'Privacy Policy',
        'slug'    => 'privacy-policy',
        'body'    => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
        'user_id' => 1,
    ));

    Page::create(array(
        'title'   => 'Terms of Use',
        'slug'    => 'terms-of-use',
        'body'    => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
        'user_id' => 1,
    ));                
}

}

после запуска «php artisan db:seed» мой первый файл работает, но не второй, и я не понимаю, почему.

Вот следующее сообщение:

PHP Fatal error: Class 'App\Models\Page' not found in C:\wamp\www\mysite\app\database\seeds\ContentSeeder.php on line 11

Вот моя модель страницы, расположенная в app/models/Page.php

<?php
namespace App\Models;

class Page extends \Eloquent {

    protected $table = 'pages';

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

}    

person Monica    schedule 06.02.2014    source источник
comment
как выглядит структура вашего сайта и есть ли у вас автоматическая загрузка необходимых файлов? ваша модель страницы (Page.php) находится только в приложении/моделях?   -  person Sidney Widmer    schedule 07.02.2014
comment
@Sydney только что добавил модель страницы   -  person Monica    schedule 07.02.2014
comment
Вы запускали php composer.phar dumpautoload или composer dumpautoload (в зависимости от вашей конфигурации) из корневого каталога?   -  person Sam    schedule 07.02.2014
comment
@SamSullivan Спасибо!!! это сработало!   -  person Monica    schedule 07.02.2014
comment
Добавлено как ответ, чтобы вы могли выбрать его :)   -  person Sam    schedule 07.02.2014


Ответы (2)


Похоже, вы не обновили файл автозагрузки Composer. Каждый раз, когда вы добавляете класс, который будет вызываться в Laravel, его необходимо включать при загрузке страницы. Это можно сделать вручную с помощью include() или require(), но вы также можете запустить php composer.phar dumpautoload (или composer autoload), чтобы обновить, какие файлы автоматически загружаются на каждой странице. Это нужно делать каждый раз, когда добавляется класс.

Дополнительные сведения см. в документации по автозагрузке Composer.

person Sam    schedule 06.02.2014

Кажется, проблема решена, но я просто хотел бы упомянуть, что вы также можете использовать что-то вроде этого:

class ContentSeeder extends Seeder {

    public function run()
    {
        $pages = array(

            array(
                'title'   => 'About us',
                'slug'    => 'about-us',
                'body'    => 'Lorem...',
                'user_id' => 1,
            ),

            array(
                'title'   => 'Privacy Policy',
                'slug'    => 'privacypolicy',
                'body'    => 'Lorem...',
                'user_id' => 1,
            )

            // more...
        );

        DB::table('pages')->delete();
        DB::table('pages')->insert($pages);
    }

}
person The Alpha    schedule 06.02.2014
comment
Благодарю вас!!! Мне было интересно, могу ли я сделать это намного эффективнее! Спасибо @Шейх - person Monica; 07.02.2014