在 laravel 中使用 view composer 将数据传递给 inertiajs
pass data to inertiajs with view composer in laravel
我正在使用 Laravel 8 和 Jetstream(惯性堆栈)。
我想使用视图组合器将数据传递到我的 Inertia 组件。
我该怎么做?
我什至尝试过这个但不起作用:
View::composer('*', ProfileComposer::class);
如果您想了解更多信息,请点击:
<?php
namespace App\Providers;
use App\Http\View\Composers\ProfileComposer;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
class ViewServiceProvider extends ServiceProvider
{
/**
* Register services.
*
* @return void
*/
public function register()
{
//
}
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
View::composer('*', ProfileComposer::class);
}
}
还有另一部分:
<?php
namespace App\Http\View\Composers;
use App\Models\Center;
use App\Models\Field;
use Illuminate\View\View;
class ProfileComposer
{
/**
* Bind data to the view.
*
* @param \Illuminate\View\View $view
* @return void
*/
public function compose(View $view)
{
$view->with('centers', Center::all('id', 'name'))
->with('fields', Field::all('id', 'name'));
}
}
inertia 替换了 blade 视图,因此您应该直接将数据传递给 inertia。因此,例如,如果您想将数据共享给所有视图,您应该使用:Inertia::share(..)
我正在使用 Laravel 8 和 Jetstream(惯性堆栈)。
我想使用视图组合器将数据传递到我的 Inertia 组件。
我该怎么做?
我什至尝试过这个但不起作用:
View::composer('*', ProfileComposer::class);
如果您想了解更多信息,请点击:
<?php
namespace App\Providers;
use App\Http\View\Composers\ProfileComposer;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
class ViewServiceProvider extends ServiceProvider
{
/**
* Register services.
*
* @return void
*/
public function register()
{
//
}
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
View::composer('*', ProfileComposer::class);
}
}
还有另一部分:
<?php
namespace App\Http\View\Composers;
use App\Models\Center;
use App\Models\Field;
use Illuminate\View\View;
class ProfileComposer
{
/**
* Bind data to the view.
*
* @param \Illuminate\View\View $view
* @return void
*/
public function compose(View $view)
{
$view->with('centers', Center::all('id', 'name'))
->with('fields', Field::all('id', 'name'));
}
}
inertia 替换了 blade 视图,因此您应该直接将数据传递给 inertia。因此,例如,如果您想将数据共享给所有视图,您应该使用:Inertia::share(..)