Pregunta Laravel 5.3 - htmlspecialchars () espera que el parámetro 1 sea una cadena


Soy nuevo en laravel y lo estoy disfrutando. Mientras trabajaba en un proyecto de redes sociales, recibí este error: htmlspecialchars() expects parameter 1 to be string, object given (View: C:\wamp64\www\histoirevraie\resources\views\user\profile.blade.php)

He verificado algunas preguntas en este sitio, pero no he encontrado una pregunta que resuelva mi problema.

esto es lo que mi profile.blade.php esta hecho de:

<ul class="profile-rows">
    <li>
        <span class="the-label">Last visit: </span>
        <span class="the-value mark green">{{ \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $user->lastVisit)->diffForHumans(\Carbon\Carbon::now())}}</span>
    </li>
    <li>
        <span class="the-label">Member since: </span>
        <span class="the-value mark light-gray">{{ $user->created_at->format('F Y') }}</span>
    </li>
    <li>
        <span class="the-label">Profile views: </span>
        <span class="the-value mark light-gray">5146</span>
    </li>
    <li>
        <span class="the-label">Living In: </span>
        <span class="the-value">{{ $user->town }}</span>
    </li>
    <li>
        <span class="the-label">Website: </span>
        <span class="the-value"><a href="{{ url($user->website) }}">{{ $user->website }}</a></span>
    </li>
</ul>

Toda la información sobre el usuario está dada por un controlador:

public function index($username){
        $user = User::where('username', $username)->first();
        return view('user.profile', compact('user'));
    }

Amablemente ayúdame a resolver este problema!


9
2017-10-14 14:41


origen


Respuestas:


Creo que su $user->website está vacío / en blanco

Si miras el url() método de ayuda, Laravel devolverá un ejemplo de UrlGenerator Si $path es nulo.

Entonces en tu caso si $user->website está vacío, obtendrías UrlGenerator volver y por lo tanto su error acerca htmlspecialchars obtener un objeto.

Una solución simple sería envolver su fragmento html con un cheque:

@if($user->website)
    <li>
        ...
    </li>
@endif

15
2017-10-14 16:35



En mi caso, utilicé una función dentro del archivo blade como $brand->products() y estaba regresando array, por eso estaba viendo el mensaje.

cuando cambié mi código y devolvió la cadena, el error desapareció.


4
2018-05-24 13:34