我可以设置视图数据而不返回 Laravel 8 中的视图吗?
Can I set view data without returning the view in Laravel 8?
我在文件夹 components
中有一个名为 structure
的模板,其中包含 header 和页脚元素。我所有的观点都是 child 这个。因此,在 header 中,我想检查用户是否已登录以显示对话框。
所以,我在 parent 视图中得到了这段代码:
<div class="loginDialogue">
{{-- {{$logged = false}} --}}
@if ($logged == true)
<a href="/profile" class="navbarBtn">Ver perfil de {{$userId}}</a>
<a href="/carrito" class="navbarBtn">Ver carrito</a>
@else
<a href="/login" class="navbarBtn">Iniciar sesión</a>
<a href="/registrer" class="navbarBtn">Registrarse</a>
@endif
</div>
这是控制器代码:
Route::get('/', function () {
if (Auth::check()) {
$logged = true;
$userId = Auth::user()->id;
view('components.structure')
->with('userId', $userId)
->with('logged', $logged);
return view('index');
} else {
$logged = false;
$userId = "";
view('components.structure')
->with('logged', $logged)
->with('userId', $userId);
return view('index');
}
});
我的问题是 $logged
显示为 undefined
,我正在寻找有关将数据传递给视图而不返回它的信息,但我找到了任何信息。
实际上,您不需要向视图发送身份验证数据
<div class="loginDialogue">
@if (Auth::check())
<a href="/profile" class="navbarBtn">Ver perfil de {{Auth::id()}}</a>
<a href="/carrito" class="navbarBtn">Ver carrito</a>
@else
<a href="/login" class="navbarBtn">Iniciar sesión</a>
<a href="/registrer" class="navbarBtn">Registrarse</a>
@endif
</div>
Route::get('/', function () {
return view('index');
}
});
如果它只是关于身份验证信息,那么您不必通过控制器传递它。
<div class="loginDialogue">
@if (auth()->check())
<a href="/profile" class="navbarBtn">Ver perfil de {{auth()->id()}}</a>
<a href="/carrito" class="navbarBtn">Ver carrito</a>
@else
<a href="/login" class="navbarBtn">Iniciar sesión</a>
<a href="/registrer" class="navbarBtn">Registrarse</a>
@endif
</div>
我在文件夹 components
中有一个名为 structure
的模板,其中包含 header 和页脚元素。我所有的观点都是 child 这个。因此,在 header 中,我想检查用户是否已登录以显示对话框。
所以,我在 parent 视图中得到了这段代码:
<div class="loginDialogue">
{{-- {{$logged = false}} --}}
@if ($logged == true)
<a href="/profile" class="navbarBtn">Ver perfil de {{$userId}}</a>
<a href="/carrito" class="navbarBtn">Ver carrito</a>
@else
<a href="/login" class="navbarBtn">Iniciar sesión</a>
<a href="/registrer" class="navbarBtn">Registrarse</a>
@endif
</div>
这是控制器代码:
Route::get('/', function () {
if (Auth::check()) {
$logged = true;
$userId = Auth::user()->id;
view('components.structure')
->with('userId', $userId)
->with('logged', $logged);
return view('index');
} else {
$logged = false;
$userId = "";
view('components.structure')
->with('logged', $logged)
->with('userId', $userId);
return view('index');
}
});
我的问题是 $logged
显示为 undefined
,我正在寻找有关将数据传递给视图而不返回它的信息,但我找到了任何信息。
实际上,您不需要向视图发送身份验证数据
<div class="loginDialogue">
@if (Auth::check())
<a href="/profile" class="navbarBtn">Ver perfil de {{Auth::id()}}</a>
<a href="/carrito" class="navbarBtn">Ver carrito</a>
@else
<a href="/login" class="navbarBtn">Iniciar sesión</a>
<a href="/registrer" class="navbarBtn">Registrarse</a>
@endif
</div>
Route::get('/', function () {
return view('index');
}
});
如果它只是关于身份验证信息,那么您不必通过控制器传递它。
<div class="loginDialogue">
@if (auth()->check())
<a href="/profile" class="navbarBtn">Ver perfil de {{auth()->id()}}</a>
<a href="/carrito" class="navbarBtn">Ver carrito</a>
@else
<a href="/login" class="navbarBtn">Iniciar sesión</a>
<a href="/registrer" class="navbarBtn">Registrarse</a>
@endif
</div>