【问题标题】:Laravel 5.3 - htmlspecialchars() expects parameter 1 to be stringLaravel 5.3 - htmlspecialchars() 期望参数 1 是字符串
【发布时间】:2017-02-24 01:10:00
【问题描述】:

我是 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'));
    }

请帮我解决这个问题!

【问题讨论】:

  • 可能{{ }}之间的一些变量是一个对象?尝试将它们全部转储到控制器中。
  • $user-&gt;website 可能是空白吗? url() 辅助方法会给你一个UrlGeneratorinstance 如果你不给它一个字符串。
  • @jszobody 你是对的。请发布您的答案
  • 在我的情况下,我在{{ }}中给出了对象

标签: php laravel-5.3


【解决方案1】:

我认为您的$user-&gt;website 是空的/空白的。

如果您查看url() helper method,如果$path 为空,Laravel 将返回UrlGenerator实例

所以在你的情况下,如果$user-&gt;website 是空的,你会得到UrlGenerator,因此你的错误是关于htmlspecialchars 获取对象。

一个简单的解决方案是用检查包装你的 html 块:

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

【讨论】:

    【解决方案2】:

    就我而言,我在刀片文件中使用了一个函数,例如 $brand-&gt;products(),它返回数组,这就是我看到该消息的原因。

    当我更改代码并返回字符串时,错误消失了。

    【讨论】:

      【解决方案3】:

      我得到这个是因为在我看来,我使用 $errors-&gt;get('username') 来显示错误,但 get() 返回一个数组。切换到$errors-&gt;first('username') 解决了这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-22
        • 2018-11-10
        • 2017-08-08
        • 2017-08-30
        • 2018-07-30
        • 1970-01-01
        • 2018-08-04
        相关资源
        最近更新 更多