Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

166
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda