在 laravel 中使用视图作曲家将数据传递给惯性js
Posted
技术标签:
【中文标题】在 laravel 中使用视图作曲家将数据传递给惯性js【英文标题】:pass data to inertiajs with view composer in laravel 【发布时间】:2021-05-21 08:41:00 【问题描述】:我正在使用 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'));
【问题讨论】:
【参考方案1】:inertia 替换了刀片视图,因此您应该直接将数据传递给惯性。因此,例如,如果您想将数据共享给您应该使用的所有视图:Inertia::share(..)
见:Inertia share
【讨论】:
我只想将我的数据传递给user/profile
路由。我不想在不需要时将我的数据传递给所有路由并查询我的数据库。
你可以在路由/控制器中返回inertia('component', ['data' => data::All()])
就像view()
一样
我使用的是jetstream,有些routes
或controllers
无法编辑。因为它在vendor
目录中,无法发布。以上是关于在 laravel 中使用视图作曲家将数据传递给惯性js的主要内容,如果未能解决你的问题,请参考以下文章
将数据传递给 Laravel 中 vue.js 中的另一个组件
在使用 Laravel 和 Vue 时,通过 Blade Views 将数据传递给 Vue 与使用 Axios 直接传递给 Vue Components 的优缺点是啥? [关闭]