0

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

<?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;
    }

在我的模型文件夹中,我有一个名为 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) { }

我不确定它为什么要在它应该得到我的模型时试图得到一个 Facades。

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

/** ------------------------------------------
 *  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');

我认为其余的无关紧要。但如果没有,请询​​问其余的。

4

1 回答 1

0

这是因为 IoC 容器。应用程序已被主应用程序占用。你可以做的是在 app/config/app.php 中添加一个别名

'aliases' => array(

    ... current aliases,

    'AppModel' => 'Robbo\Models\App'
);

当然,在这种情况下,App 模型需要命名为 Robbo\Models。

于 2013-06-12T12:28:38.073 回答