を働いていない\のHttp \ NotificationComposer.php:View Composerは、私がアプリケーションを持っているLaravel
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class ComposerServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
view()->composer(
'app',
'App\Http\ViewComposers\NotificationComposer'
);
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
//
}
}
そして、私のconfig \アプリで:私はまた、アプリケーションの\プロバイダ\ ComposerServiceProvider.phpを持って
namespace App\Http\ViewComposers;
use Illuminate\View\View;
class NotificationComposer
{
public $notifications;
public function __construct(){
$this->notifications = json_decode(\Auth::user()->notifications, true);
}
public function compose (View $view)
{
dd($this->notifications);
$view->with('notifications');
}
}
.PHP:
'providers' => [
...
App\Providers\ComposerServiceProvider::class,
...
],
];
私は私が正しく表示作曲を設定していると信じて、しかし毎回レイアウト\ app.blade.phpがロードされる(D laravelのefault bootstrap bar)データベースにいくつかの通知があっても、通知は表示されません。ビューコンポーザで見るように、私はそれらをddしようとしました。
これは何が起こっているのか、私が正しく行っていないのか誰にも分かりませんか?
ありがとう、
したがって、新しいサービスプロバイダをconfig/app.phpの 'aliases'配列に登録するべきではありません。それは、残りのサービスプロバイダと同じでなければなりません。また、 'app'は予約されたView Composerの名前かもしれませんが、わかりません。 – Kenyon
ここで何が起こっているのか分かりませんが、View Composerは 'View :: make'や' Response :: view'を使って「作成」されたビューの名前だけをトリガします。 'myview'から' app'ビューを拡張すると、作者は 'myview'のために登録する必要があります – apokryfos
私はビューを作成していないとビューを登録するにはどうしたらいいですか:: make? – iLC