无法在Laravel 4框架的控制器的construct方法中加载模型


Not able to load a model in the construct method in the controller of the Laravel 4 framework

这是我的控制器代码的开始:

<?php
class AppController extends BaseController {
    /**
     * App Model
     * @var app
     */
    protected $app;
    /**
     * User Model
     * @var User
     */
    protected $user;
    /**
     * Inject the models.
     * @param app $app
     * @param User $user
     */
    public function __construct(App $app, User $user)
    {
        parent::__construct();
        $this->app = $app;
        $this->user = $user;
    }
在我的models文件夹中有一个名为App.php的文件

下面是代码的开头:

<?php
    use Illuminate'Support'Facades'URL; # not sure why i need this here :c
    use Robbo'Presenter'PresentableInterface;
    class App extends Eloquent implements PresentableInterface {

现在我对$this->app var执行var_dump(),得到如下结果:

object(Illuminate'Support'Facades'App)#472 (0) { }

我不知道为什么它试图得到一个正面当它应该得到我的模型。

这也是我的路由文件的一部分:

/** ------------------------------------------
 *  Route model binding
 *  ------------------------------------------
 */
Route::model('user', 'User');
Route::model('app', 'App');
Route::model('role', 'Role');
# Apps - Second to last set, match slug
Route::get('{appSlug}', 'AppController@getView');
Route::post('{appSlug}', 'AppController@postView');
# Index Page - Last route, no matches
Route::get('/', 'AppController@getIndex');

我认为其余部分是无关紧要的。但如果没有,请一定要剩下的

这是因为IoC容器。App已经被主应用程序占用。你可以在app/config/app.php

中添加别名
'aliases' => array(
    ... current aliases,
    'AppModel' => 'Robbo'Models'App'
);

当然,在本例中,应用程序模型需要被命名为robo 'Models。