Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

155
Views
obtener una imagen con la condición if en laravel 5.4

Intento imprimir una imagen cargada por el usuario en Laravel 5.4. Utilizo una condición if y si el usuario no carga ninguna imagen, se muestra la imagen predeterminada, pero mi código fuente de alguna manera no imprime nada. Este es el código que uso:

 @if (File::exists($post->image)) { echo "<img src="{{ asset('uploads/' . $post->image) }}" alt="{{ $post->title }}" />"; } else { echo "<img src="{{ asset('images/no-image.png') }}" alt="{{ $post->title }}" />"; } @endif

Actualizar:

Trato de usar este código:

 @if (File::exists(public_path("asset/uploads/".$post->image))) <img src="{{ asset('uploads/' . $post->image) }}" alt="{{ $post->title }}" /> @else <img src="{{ asset('images/no-image.png') }}" alt="{{ $post->title }}" /> @endif

Y el resultado ahora estoy obteniendo:

si utilizo asset/uploads O assets/uploads if todas las imágenes vuelven a no tener imagen, incluso si tienen una imagen. si utilizo uploads if las publicaciones con imágenes se muestran pero otras no muestran imágenes y la URL que obtendré para ellas es url.dev/uploads en lugar de url.dev/images/no-image.png .

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

File::exists() comprobará la ubicación física del archivo en el disco duro. Por lo tanto, debe usar la ruta real al archivo.

 @if (File::exists(public_path("assets/uploads/".$post->image))) <img src="{{ asset('uploads/' . $post->image) }}" alt="{{ $post->title }}" /> @else <img src="{{ asset('images/no-image.png') }}" alt="{{ $post->title }}" /> @endif

Verifique que la ruta generada por el método `public_path' sea correcta para su archivo.

Actualización: gracias a linktoahref, resulta que el código de su hoja también es incorrecto. Corregido aquí.

File::exists funciona igual que file_exists de php, que devolverá verdadero incluso si busca un directorio, ahora lo que sucede aquí es que para algunas publicaciones, la imagen es nula, lo que hace que la ruta sea un directorio.

Utilice este código en su lugar.

 @if ($post->image && File::exists(public_path("uploads/".$post->image))) <img src="{{ asset('uploads/' . $post->image) }}" alt="{{ $post->title }}" /> @else <img src="{{ asset('images/no-image.png') }}" alt="{{ $post->title }}" /> @endif
over 4 years ago · Santiago Trujillo Report

0

Estás mezclando php sin procesar y plantillas de blade juntas, ya sea que te quedes con el código de php sin procesar o la sintaxis de plantillas de blade

Entonces seria lo siguiente en blade

 @if (File::exists($post->image)) <img src="{{ asset('uploads/' . $post->image) }}" alt="{{ $post->title }}" /> @else <img src="{{ asset('images/no-image.png') }}" alt="{{ $post->title }}" /> @endif

O use php sin procesar como

 <?php if (File::exists($post->image)) { echo "<img src=". asset('uploads/' . $post->image) . " alt=" . $post->title . " />"; } else { echo "<img src=". asset('images/no-image.png') . " alt=". $post->title ." />"; } ?>
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!