4
respostas

Problema ao executar a extensão blade.php

Ao renomear o arquivo "detalhes.php" para o arquivo "detalhes.blade.php" ocorre o seguinte erro:

ErrorException in 45ae1bc2713ea9c7d4c7d82b94849be844ff4fb5.php line 16: Undefined property: Illuminate\View\Factory::$startSection (View: C:\Users\julyc\estoque\resources\views\detalhes.blade.php)

Quando renomeio novamente para "detalhes.php" a página é exibida (somente os dados sem o cabeçalho html), mas quando coloco a extensão gera o erro acima.

4 respostas

Oi Julyana, tudo bom?

Verifica pra mim se o seu arquivo principal.blade.php está com @yield('conteudo'):

<html>
<head>
    <link href="/css/app.css" rel="stylesheet">
    <title>Controle de estoque</title>
</head>
<body>
  <div class="container">

    @yield('conteudo')

  </div>
</body>
</html>

Verifica também se seu arquivo detalhes.blade.php está com a section('conteudo') que indica para o yield qual conteudo será injetado:

@extends('principal')

@section('conteudo')
<h1>Detalhes do produto: <?= $p->nome ?> </h1>

<ul>
  <li>
    <b>Valor:</b> R$ <?= $p->valor ?> 
  </li>
  <li>
    <b>Descrição:</b> <?= $p->descricao ?> 
  </li>
  <li>
    <b>Quantidade em estoque:</b> <?= $p->quantidade ?>
  </li>
</ul>

@stop

Aguardo retorno!

Abraço e bons estudos =)

Se a property existir no Controller e estiver sendo passada corretamente pra view, experimente limpar o cache das views compiladas:

php artisan view:clear

Uma ressalva a fazer é que no Laravel 5.4, pelo menos no meu caso, o @stop não funcionou na hora de utilizar o blade. Para resolver tive que usar @endsection, como proposto na documentação.

Minha resposta te ajudou? Dá um retorno ou marca como solução? Obrigado!