Laravel 错误: 方法照亮\视图\视图::__toString() 不得引发异常
你在Laravel工作时看到这个可爱的错误了吗?
Method Illuminate\View\View::__toString() must not throw an exception
我看过它,它非常烦人。我已经发现了抛出此错误的两个原因。我只是想帮助人们不要花费数小时的时间。
查看下面的答案和情况。:)
你在Laravel工作时看到这个可爱的错误了吗?
Method Illuminate\View\View::__toString() must not throw an exception
我看过它,它非常烦人。我已经发现了抛出此错误的两个原因。我只是想帮助人们不要花费数小时的时间。
查看下面的答案和情况。:)
有一个非常简单的解决方案:不要将 View 对象强制转换为字符串。
不要:或echo View::make('..');
echo view('..');
执行:或echo View::make('..')->render();
echo view('..')->render();
对于 PHP 版本 <7.4通过投射视图,它自动使用方法,这不会引发异常。如果手动调用,则会正常处理异常。如果视图中存在错误,则会出现这种情况 - laravel 会引发异常。__toString()
render()
在 PHP >=7.4 中修复了此问题,您不应该遇到此问题:https://wiki.php.net/rfc/tostring_exceptions。
对于 PHP 版本 <7.4:这实际上是一个PHP限制,而不是Laravels。在此处阅读有关此“功能”的更多信息:https://bugs.php.net/bug.php?id=53648
情况 1:尝试打印出数组中的值。
回答 1:尝试打印出阵列。您确定它是一个数组吗?当它是对象而不是数组时,我得到了这个错误。尝试做一个print_r,看看你得到了什么。
情况 2:您有这样关联的数组:
Array
(
[post_id] => 65
[post_text] => Multiple Images!
[created_at] => 2014-10-23 09:16:46
[updated_on] =>
[post_category] => stdClass Object
(
[category_label] => Help Wanted
[category_code] => help_wanted
)
[employee_full_name] => Sam Jones
[employee_pic] => /images/employee-image-placeholder.png
[employee_email] => jon@gmail.com
[post_images] => Array
(
[0] => stdClass Object
(
[image_path] => 9452photo_2.JPG
)
[1] => stdClass Object
(
[image_path] => 8031photo_3.JPG
)
)
)
当您尝试直接在视图中访问post_images数组时,它会引发错误。不。事。什么。你。做。
回答 2:检查您正在呼叫视图的所有位置。这里发生的事情是,我试图在我没有给出post_images数组的区域的其他地方访问相同的视图。花了很长时间才弄清楚。
我希望这对其他人有所帮助。:)我只知道我不断得到的错误对我没有帮助。