Целевой интерфейс Laravel 4 не может быть создан

Это связано с этим вопросомКак зарегистрировать пространство имен в laravel 4 но я верю, что все получилось, и пространства имен работают сейчас.

Есть новая проблема, с которой я столкнулся. Я полагаю, что ошибка происходит от попытки ввести подсказку в конструкторе контроллера и связана с использованием пространств имен и использованием ioc.

BindingResolutionException: Target [App\Models\Interfaces\PostRepositoryInterface] is not instantiable.

Метод ниже работал отлично, пока я не попытался ввести пространства имен. Я могу удалить все пространства имен и поместить интерфейс и репозитории в один каталог, но хотел бы знать, как заставить пространства имен работать с этим методом использования ioc.

Вот соответствующие файлы.

routes.php

Route::resource('posts', 'PostsController');

PostController.php

<?php
use App\Models\Interfaces\PostRepositoryInterface;
class PostsController extends BaseController {

    public function __construct( PostRepositoryInterface $posts )
    {
        $this->posts = $posts; 
    }

}

PostRepositoryInterface.php

<?php namespace App\Models\Interfaces;
interface PostRepositoryInterface {
    public function all();
    public function find($id);
    public function store($data);
}

EloquentPostRepository.php

<?php namespace App\Models\Repositories;
use App\Models\Interfaces\PostRepositoryInterface;
class EloquentPostRepository implements PostRepositoryInterface {

    public function all()
    {
        return Post::all();
            //after above edit it works to this point
            //error: App\Models\Repositories\Post not found
            //because Post is not in this namespace
    }

    public function find($id)
    {
        return Post::find($id);
    }

    public function store($data)
    {
        return Post::save($data);
    }
}

И вы можете видеть, что composer dump-autoload сделал свое дело.

композитор / autoload_classmap.php

return array(
    'App\\Models\\Interfaces\\PostRepositoryInterface' => $baseDir . '/app/models/interfaces/PostRepositoryInterface.php',
    'App\\Models\\Repositories\\EloquentPostRepository' => $baseDir . '/app/models/repositories/EloquentPostRepository.php',

    ....
    )

Любые идеи, где или что мне нужно изменить, чтобы заставить эту работу работать с пространствами имен, как это происходит без них?

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос