首页 > 解决方案 > Laravel:在 web.php 中传递变量

问题描述

我的web.php. 这是我的 React 应用程序的路由。

Route::get('/{path?}', function () {
    return view( 'welcome' );
})->where('path', '.*');

我宁愿 return view( 'welcome' );拥有

return view('welcome')->with([
    "globalData" => collect([
        'user' => Auth::user()
    ]);

而且我有语法错误,也许是错字?

标签: phplaravel

解决方案


你没有with()正确使用。如果你想传递一个这样的数组,这里是正确的语法。

return view('welcome', ['globalData' => ['user' => Auth::user()]]);

或者

return view('welcome')->with('globalData', ['user' => Auth::user()]);

或者

$globalData = ['user' => Auth::user()];

return view('welcome', compact('globalData'));

也许您还应该看看View Composers


如果您只想在 JavaScript 中使用此数据,则需要同时使用json_encode()将数组编码为字符串JSON.parse()并将此 json 字符串转换为适当的 JS 对象。

var globalData = JSON.parse({{ json_encode($globalData) }}); // try with {!! !!} if it doesn't work. 

推荐阅读