问题描述
当我必须在其他文件中包含或扩展该刀片文件时如何处理未定义的变量
解决方法
您可以通过 sharing data with those blades 在任何刀片文件中共享所需的数据。
在您的 AppServiceProvider
namespace App\Providers;
use Illuminate\Support\Facades\View;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
$user_id = 1; // For example
$user = \App\Models\User::find($user_id);
// Share to all blade files
View::share('user',$user);
// Or only in a specific blade file
View::composer('admin.components.topBar',function ($view) use($user) {
$view->share('user',$user);
});
}
}
现在,$user
在您的所有刀片文件中都可用。
您可以将变量传递给包含的视图
@include('view.name',['user' => $user])
。您也可以在 https://laravel.com/docs/8.x/blade#including-subviews