【问题标题】:Method Illuminate\View\View::__toString() must not throw an exception in Laravel方法 Illuminate\View\View::__toString() 不能在 Laravel 中抛出异常
【发布时间】:2016-09-23 07:20:52
【问题描述】:

我正在使用集合在视图中显示数据,但它会生成以下错误消息

FatalErrorException in 47fef8438385ff37fab794239c1e3914 line 0:
Method Illuminate\View\View::__toString() must not throw an exception

当我喜欢编码时

{{ $feed->feedable->slug->value }}

另一方面,当我使用下面给定的代码时,

{{ $feed->feedable->slug }}

它工作正常并返回

{"id":3,"value":"Quite","views":5,"user_id":1,"category_id":1,"created_at":"2016-05-23 14:18:03","updated_at":"2016-05-24 12:47:29"}

谁能提供解决方案?

【问题讨论】:

  • 你的slug是一个json字符串吗?如果是这样,您需要先json_decode(),然后在上面执行->slug
  • 您的 Slug 模型上有自定义访问器吗?
  • 我在 slug 模型上没有任何自定义错误
  • 不,它是一个 laravel 集合。为方便起见,它输出为 json
  • 所以它是一个包含单个对象的集合,其中包含 slug?

标签: php laravel exception collections


【解决方案1】:

您正在尝试将视图转换为视图中的字符串。提供的代码中没有。

该视图导致异常。

视图中缺少代码:

{!! View::make('partials.my._singleFeedDynamic', compact('feed')) !!}

您不应该从视图中执行此操作。有 @include@each 用于包含这样的部分。

如果您不想解决此问题,可以尝试将->render() 添加到该调用中,以避免发生__toString()。这将允许异常像平常一样冒泡。然后你必须弄清楚是什么导致了这个异常。

【讨论】:

    【解决方案2】:

    尝试像这样输出值:

    {{ $feed->feedable->slug->getOriginal('value') }}
    

    【讨论】:

    • 在非对象上调用成员函数 getOriginal()
    • 您能否更新您的问题以包含相关模型(Feedable 和 Slug)
    猜你喜欢
    • 2016-07-13
    • 2014-12-19
    • 2014-11-18
    • 2015-04-04
    • 2014-04-20
    • 2015-04-14
    • 2021-08-03
    • 2014-05-15
    • 2021-07-09
    相关资源
    最近更新 更多