Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

305
Vistas
Intento de leer la propiedad "título" en la matriz (Excepción de error) Laravel Php

cuando trato de ejecutar lo siguiente, aparece la excepción de error donde no puede leer el título en la matriz. ¿Puedes decirme cómo arreglar esto?

** Mi código postal de la aplicación/modelos y como se muestra a continuación **

 <?php namespace App\Models; use Illuminate\Database\Eloquent\ModelNotFoundException; // use Illuminate\Support\Facades\File; class Post { public $title; public $excerpt; public $date; public $body; public function __construct($title, $excerpt, $date, $body) { $this-> title = $title; //this is where the error is occurring $this-> excerpt = $excerpt; $this-> date = $date; $this-> body = $body; } public static function all() { $files = File::files(resource_path("postss/")); return array_map(function ($file){ return $file-> getContents(); }, $files); } public static function find($slug) { base_path(); if (!file_exists($path = resource_path("postss/{$slug}.html"))) { throw new ModelNotFoundException(); } return cache()-> remember("posts.{$slug}", 7 , function () use ($path){ return file_get_contents($path); }); } }

y mi código de clase de rutas es

 Route::get('/', function () { $files = File::files(resource_path("postss")); $posts =[]; foreach ($files as $file) { $document[] = YamlFrontMatter::parseFile($file); $posts[]= new Post( $document->title, $document->excerpt, $document->date, $document->body() ); } });

El código es correcto hasta donde yo sé, simplemente no sé si hay algo que deba agregar o hacer algo para que desaparezca el error.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Creo que el error está realmente aquí.

 foreach ($files as $file) { // you load an array here !!! $document[] = YamlFrontMatter::parseFile($file); $posts[]= new Post( $document->title, // then you use $document as a scalar? $document->excerpt, $document->date, $document->body() ); }

Creo que probablemente necesites hacer

 foreach ($files as $file) { // you load an array here !!! $document = YamlFrontMatter::parseFile($file); $posts[]= new Post( $document->title, $document->excerpt, $document->date, $document->body() ); }
over 4 years ago · Santiago Trujillo Denunciar

0

el error está dentro de este bucle foreach

 foreach ($files as $file) { $document[] = YamlFrontMatter::parseFile($file); $posts[]= new Post( $document->title, $document->excerpt, $document->date, $document->body() ); }

específicamente aquí

 $document[] = YamlFrontMatter::parseFile($file);

agrega un nuevo objeto en una matriz $ documento y aquí

 $document->title,

intenta acceder al título directamente desde $document, debe especificar el índice de la matriz para acceder al objeto con el atributo, algo como esto

 $document[0]->title,

o podría reescribir la primera parte en

 $document = YamlFrontMatter::parseFile($file);
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda