Laravel 5.3 - 用htmlspecialchars()预计参数1为串

问题描述 投票:11回答:3

我是新来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('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>

有关用户的所有信息由控制器给出:

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

请帮我解决这个问题!

php laravel-5.3
3个回答
17
投票

我觉得你的$user->website是空/空。

如果你看一下url() helper method,Laravel会如果UrlGenerator为null返回$path的一个实例。

所以你的情况,如果$user->website是空的,你会得到UrlGenerator回来,因此你对htmlspecialchars错误获取的对象。

一个简单的解决办法是用支票来包装你的HTML块:

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

4
投票

就我而言,我喜欢用刀片$brand->products()文件中的函数,它返回数组,这就是为什么我看到的消息。

当我改变了我的代码,并返回字符串,走了错误。


1
投票

我得到这个,因为在我看来,我是用$errors->get('username')显示错误,但get()返回数组。切换到$errors->first('username')固定这一点。

© www.soinside.com 2019 - 2024. All rights reserved.