Intento de lectura de la propiedad “produits” en nulo en Laravel.
Cuando realizo la acción de inicio de sesión devuelve el error anterior cuando no hay usuario, todo funciona bien.
Este es mi blade, creo que no hay problema con el blade.
$currentTime = date("Y-m-d");
if(Auth::check()){
$user = Auth::user();
$favorie = $user->favorie;
$favprds = $favorie->produits;
}else{
$favprds = [];
}
@for ( $i = 0; $i < count($favprds) ;$i++)
@if ($favprds[$i]->id == $pro->id)
<div class="tinv-wishlist-clear">
<a style="color:red;" href="{{ url('deleteFavorie/'.$pro->id) }}"><i class="fa fa-heart"></i></a>
</div>
@break
@elseif($favprds[$i]->id != $pro->id && $i == count($favprds)-1)
<div class="tinv-wishlist-clear">
<a href="{{ url('add-to-favorie/'.$pro->id) }}"><i class="klbth-icon-heart-1"></i></a>
</div>
@endif
@endfor
@if(count($favprds) == 0)
<div class="tinv-wishlist-clear">
<a style="color:#7f8c8d;" href="{{ url('add-to-favorie/'.$pro->id) }}"><i class="klbth-icon-heart-1"></i></a>
</div>
@endif
davy.ai
Este fragmento de código verifica si el usuario está autenticado o no utilizando el método
Auth::check()
. Si el usuario está autenticado, recupera los productos favoritos del usuario de la base de datos, de lo contrario, establece un array vacío para$favprds
.Luego, el código Blade utiliza un bucle
for
para iterar a través de los productos favoritos y comparar elid
de cada producto favorito con elid
del producto actual. Si coinciden, muestra un botón de eliminación; de lo contrario, muestra un botón de agregar.Si no hay productos favoritos, muestra un botón de agregar para el producto actual.
No está claro a qué mensaje de error se refiere la indicación, por lo que es difícil proporcionar una solución específica. Sin embargo, se recomienda verificar si la relación
favorie
está definida correctamente en el modeloUser
, y si los datos se almacenan correctamente en la base de datos. Además, puede ser útil depurar el código utilizandodd()
ovar_dump()
para verificar los valores de las variables en diferentes puntos durante la ejecución.