你有没有在Laravel工作时,看到这个可爱的错误?
Method Illuminate\View\View::__toString() must not throw an exception
我已经看到它,它是令人难以置信的烦人。我已经发现了两个原因这个错误被抛出。我只是想帮助人们不采取时间和小时的时间。
查看答案与下面的情况。 :)
有一个很简单的解决办法:不要投查看对象的字符串。
不要:echo View::make('..');
或echo view('..');
这样做:echo View::make('..')->render();
或echo view('..')->render();
铸造视图,它会自动使用__toString()
方法,该方法不能抛出异常。如果你手动调用render()
,异常通常处理。这种情况如果出现在视图中的错误 - laravel抛出异常。
这实际上是一个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] => [email protected]
[post_images] => Array
(
[0] => stdClass Object
(
[image_path] => 9452photo_2.JPG
)
[1] => stdClass Object
(
[image_path] => 8031photo_3.JPG
)
)
)
当您尝试直接在视图中访问post_images阵列,它抛出一个错误。不管。什么。您。做。
答2:检查在所有的地方,您呼叫的视图。这里发生的是,我是想在其他地方获得同样的观点在我没有给post_images阵列的区域。没完没了弄清楚。
我希望这可以帮助别人。 :)我只知道我一直得到没有帮助我在任何地方的错误。
我遇到错误这样,当在我的情况$expression = new Expression();
对象是一样的参数变量submitExpression($intent, $bot_id, **$expression**){
检查下面的代码的更多细节。
private function submitExpression($b_id, $expression){
$expression = new Expression();
$expression->b_id = $b_id;
$expression->expression = $expression;
$expression->save();
}
所以我改变了上面的代码类似
private function submitExpression($b_id, $statement){
$expression = new Expression();
$expression->b_id = $b_id;
$expression->expression = $statement;
$expression->save();
}
和一切工作正常,希望对您有所帮助。
类似的错误是:
FatalErrorException在FooController.php线0:方法应用程序\型号\富:: __的toString()不得抛出一个异常
而这只是一个糟糕的分配:$foo.= new Foo;
而不是:$foo = new Foo;