我有一個簡單的設置,我需要通過我的應用程序在我的網站的標題中顯示一些數據。要做到這一點,我創建了一個ComposerServiceProvider
類和HeaderComposer
類委派這個責任,如下圖所示:在Laravel 4中將命名空間類用作View Composer?
ComposerServiceProvider
use Illuminate\Support\ServiceProvider;
class ComposerServiceProvider extends ServiceProvider {
public function register() {
$this->app->view->composer('templates.header', 'HeaderComposer');
}
}
HeaderComposer
class HeaderComposer {
public function compose($view) {
Event::listen('illuminate.query', function($q) {
print_r($q);
});
$view->with('nearbyMissions', array(
'past' => Mission::remember(60, 'previousMissions')->previousMissions(3)->get(),
'future' => Mission::remember(60, 'nextMissions')->nextMissions(3)->get()
));
}
}
以前,這些班都沒有命名空間,但現在我已決定將它們中的每一個命名空間作爲一種良好實踐,通過在文件前面加上:
namespace MyProject\Composers;
但是,這已經打破了我的應用程序,因爲我的項目的某些部分無法再解析我的作曲家類。我的網頁沒有工作,因爲它們都使用它採用了模板頭視圖我HeaderComposer
:
Class HeaderComposer does not exist (View: H:\myproject\app\views\templates\main.blade.php)
我在哪裏打算申報班裏use
報表?在我看來? (這看起來不正確)。別的地方?
你試過'$這個 - > APP->查看 - >作曲( 'templates.header',「MyProject的\ Composers \ HeaderComposer');'? –