0

新しい Laravel 4 アプリケーション内で PSR-4 をセットアップしようとしていますが、コントローラーをビルドするときに必要なものを達成するのに苦労しています。

これが私が今持っているものです:

namespace MyApp\Controllers\Domain;

class DomainController extends \BaseController {

    public $layout = 'layouts.default';

    public function home() {
        $this->layout->content = \View::make('domain.home');
    }
}

\View, \Config,\Whateverを使って Laravel のクラスを使うのはあまり好きではありません。そこで、を入れなくてもuse Illuminate\View;使えるように を入れたらどうかなと思っていました。View::make\

残念ながら、これを行っているときに、次のエラーが発生します: Class 'Illuminate\View' not found.

誰かがこれを手伝ってくれませんか?

4

3 に答える 3

1

BaseController.php に MyApp\Controllers\Domain の名前空間があると仮定します。

namespace MyApp\Controllers\Domain;

use View;

class DomainController extends BaseController {

    public $layout = 'layouts.default';

    public function home() {
        $this->layout->content = View::make('domain.home');
    }
}

BaseController.php に他の名前空間 (MyApp\Controllers など) がある場合

namespace MyApp\Controllers\Domain;

use MyApp\Controllers\BaseController;
use View;

class DomainController extends BaseController {

    public $layout = 'layouts.default';

    public function home() {
        $this->layout->content = View::make('domain.home');
    }
}

たとえば、コントローラーが Laravel の別の基本クラスを使用する必要がある場合は、Config.

namespace MyApp\Controllers\Domain;

use MyApp\Controllers\BaseController;
use View;
use Config;

class DomainController extends BaseController {

    public $layout = 'layouts.default';

    public function home() {
        $this->layout->content = View::make('domain.home')->withName(Config::get('site.name'));
    }
}
于 2014-09-18T08:02:41.063 に答える
1

あなたの場合の問題は、名前空間ではViewなく名前空間にあるため、正しいインポートは次のようにはなりません。IlluminateIlluminate\View

use Illuminate\View; 

しかし

use Illuminate\View\View;

http://laravel.com/api/4.2/を見て、使用するクラスに適した名前空間を見つけることができます

于 2014-09-18T08:17:11.043 に答える