簡體   English   中英

無法在Laravel 4框架的控制器中的構造方法中加載模型

[英]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;
    }

在我的模型文件夾中,我有一個名為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');

我認為其余的都是無關緊要的。 但是,如果沒有,請其余部分。

這是因為有IoC容器。 主應用程序已使用該應用程序。 您可以做的是在app / config / app.php中添加一個別名

'aliases' => array(

    ... current aliases,

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

當然,在這種情況下,App模型需要命名為Robbo \\ Models。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM