Laravel 我未设置的刀片中的变量设置

Laravel 我未设置的刀片中的变量设置,laravel,Laravel,我试图根据是否设置了变量来显示刀片文件中的某些内容。但是我没有设置变量 我有GameController.php: use App\Models\Game; class GameController extends Controller { public function index() { $games = Game::latest()->get(); return view('game.index', [ 'gam

我试图根据是否设置了变量来显示刀片文件中的某些内容。但是我没有设置变量

我有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
所以我设置了$game,但我没有设置$game。不过,游戏已经设置好了。我希望这个标题显示如果我做了一个节目,那么$game将被设置,但它不应该显示在未设置$game的索引中。这是正常的行为吗?如果是的话,我有什么更好的方法来处理

$games = Game::latest()->get();
在上面的代码中,get returns集合可能被称为游戏数组,您将需要blade模板中的@foreach指令来循环遍历游戏集合


如果您只想要一个最新的游戏,那么您应该使用$games=game::latest->first

我发现了这个问题。它缺乏对@extend和@section如何工作的理解

index.blade.php扩展了layout.blade.php

@extends ('layout')
它显示布局之前的所有索引进程。正因为如此,索引中的foreach,尽管从技术上讲,如果要查看网页上的源代码,它位于页眉下方,但在页眉之前进行处理并设置$game。我刚刚重构了foreach中使用的变量,这就解决了我的问题

谢谢kerbh0lz,您在技术上帮助我找到了它。

请尝试在其他地方打印$game变量内的内容,并将ddIs$game设置为View Composer或其他内容?你有一个@foreach上面的代码,可以设置$game吗?