Intereting Posts

Ошибка Laravel: метод Illuminate \ View \ View :: __ toString () не должен генерировать исключение

Вы видели эту прекрасную ошибку во время работы в Laravel?

Method Illuminate\View\View::__toString() must not throw an exception 

Я видел это, и это невероятно раздражает. Я обнаружил две причины, по которым эта ошибка возникает. Я просто хочу помочь людям не принимать часы и часы.

Просмотрите ответы и ситуации ниже. 🙂

Solutions Collecting From Web of "Ошибка Laravel: метод Illuminate \ View \ View :: __ toString () не должен генерировать исключение"

Существует очень простое решение: не бросайте объект View в строку.

Не: echo View::make('..'); или echo view('..');

Do: 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] => 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. Взял FOREVER, чтобы понять.

Надеюсь, это поможет кому-то другому. 🙂 Я просто знаю, что ошибка, которую я продолжал получать, никуда не помогала.