laravel - 我未设置的刀片中设置的变量
问题描述
我正在尝试根据是否设置变量在我的刀片文件中显示某些内容。但是正在设置我没有设置的变量。
我有 GameController.php:
use App\Models\Game;
class GameController extends Controller
{
public function index() {
$games = Game::latest()->get();
return view('game.index', [
'games' => $games
]);
}
...
然后在布局刀片文件中我这样做:
@isset($game->name)
<h1>{{ $game->name }}</h1>
@endisset
所以我设置了$games,但我没有设置$game。但是, $game 已设置。我希望此标头显示我是否执行 show() 并且 $game 将被设置,但它不应该显示在未设置 $game 的 index() 中。这是正常行为吗?如果是这样,我有什么更好的方法来处理这个问题?
解决方案
我发现了这个问题。缺乏对@extend 和@section 工作原理的理解。
index.blade.php 扩展 layout.blade.php
@extends ('layout')
它出现在布局之前的所有索引过程。因此,如果您要在网页上查看源代码,尽管从技术上讲,索引中的 foreach 位于标题下方,但它在标题之前处理并设置 $game. 我刚刚重构了 foreach 中使用的变量,这解决了我的问题。
谢谢kerbh0lz,您在技术上帮助我找到了它。
推荐阅读
- c++ - 在默认构造函数中声明 arr 时未在此范围内声明“arr”
- nginx-location - 关于 Nginx $arg_name 语法
- laravel - Laravel - 两个独立的 laravel 项目之间的 Websocket
- javascript - 运行总和挑战未定义
- image - 如何在 Flutter 中仅捕获 renderObject 内部的图像而没有周围空间?
- python - 使用 cdk 从账户 B 中的 lambda 调用账户 A 中的 step 函数
- css - CSS中的Reactjs材质图标
- proxy - 我想使用 Jmeter 使用不同的公共 IP 发送每个 http 请求
- nlp - spaCy 的预训练依赖解析器的英语训练/开发数据在哪里?
- c++ - 无限循环的原因?(迭代中序遍历实现)C++