Я новичок в laravel, и мне это нравится. Во время работы над проектом в социальных сетях я получил эту ошибку: htmlspecialchars() expects parameter 1 to be string, object given (View: C:\wamp64\www\histoirevraie\resources\views\user\profile.blade.php)
Я проверил некоторые вопросы на этом сайте, но я не нашел вопроса, который решает мою проблему.
это мой profile.blade.php
:
<ul class="profile-rows"> <li> <span class="the-label">Last visit: </span> <span class="the-value mark green">{{ \Carbon\Carbon::createFromFormat('Ymd 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>
Вся информация о пользователе предоставляется контроллером:
public function index($username){ $user = User::where('username', $username)->first(); return view('user.profile', compact('user')); }
Пожалуйста, помогите мне решить эту проблему!
Я думаю, ваш $user->website
пуст / пуст.
Если вы посмотрите на вспомогательный метод url()
, Laravel вернет экземпляр UrlGenerator
если $path
равно null.
Поэтому в вашем случае, если $user->website
пуст, вы получите UrlGenerator
и, следовательно, свою ошибку о том, что htmlspecialchars
получает объект.
Одним простым решением было бы обернуть чек html с помощью проверки:
@if($user->website) <li> ... </li> @endif
В моем случае я использовал функцию внутри файла blade-файла (например, $ brand-> products ()), и он возвращал массив, поэтому я видел сообщение.
когда я изменил свой код и вернул строку, ошибка исчезла.