Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 25.12.2017 18:29:53

Ошибка "Trying to get property of non-object"

Здравствуйте)
Ситуация критическая. Я не являюсь разработчиком на Laravel,
но на обслуживание достался ресурс на Laravel 5.2.45  Версия php 5.5 .
По сути -сайт-каталог   ,при переходе в карточку товара http://олимп-мебель.рус/products/prihozhaya-edel-veys возникла такая ошибка
Trying to get property of non-object (View: resources/views/product.blade.php)
ссылка  .
Вот, что в CatalogController.php line 69:

static function getImgColor($id){
        $color=DB::table('colors')->where('id', $id)->first();

        $img=' <a class="light" data-title="'.$color->title.'" href="/'.$color->img.'">
                                <img class="example-image" src="/'.$color->img.'" alt="">

                                <p class="color_name">'.$color->title.'</p>
                            </a>';

        return $img;

Не могли бы подсказать, в чём может быть проблема?

Изменено dina_ra (25.12.2017 18:35:25)

Не в сети

#2 25.12.2017 19:18:49

Re: Ошибка "Trying to get property of non-object"

Это значит, что в таблице colors нет строки с данным $id

Не в сети

#3 25.12.2017 20:48:59

Re: Ошибка "Trying to get property of non-object"

есть
EXPLAIN SELECT * FROM `colors`

id     title     img     created_at     updated_at

Но таблица пустая.

Не в сети

#4 25.12.2017 21:10:53

Re: Ошибка "Trying to get property of non-object"

Если таблица пустая, тогда этот код всегда будет ошибку выдавать.

Не в сети

#5 25.12.2017 21:38:33

Re: Ошибка "Trying to get property of non-object"

если удалю эту функцию, то получается ошибка, хотя переход в карточку получается, но стили слетают.
/olimp-mebelj.rus/public_html/storage/framework/views/a49ccd7767d8c5ce59e2293422ed75d3034a18ed.php line 48: Call to undefined method App\Http\Controllers\CatalogController::getImgColor()

Это в 48 строке

<div class="right_preview">
                            <?php foreach($product->colors as $color): ?>
                                <?php echo \App\Http\Controllers\CatalogController::getImgColor($color); ?>

                            <?php endforeach; ?>
                        </div>

Не в сети

#6 26.12.2017 01:14:28

Re: Ошибка "Trying to get property of non-object"

    static function getImgColor($id)
    {
        $color = DB::table('colors')->where('id', $id)->first();
        if(!is_null($color)) {
            $img = ' <a class="light" data-title="' . $color->title . '" href="/' . $color->img . '">
                                <img class="example-image" src="/' . $color->img . '" alt="">

                                <p class="color_name">' . $color->title . '</p>
                            </a>';

            return $img;
        }
        return "";
    }

А так вас не устроит?

Не в сети

#7 26.12.2017 05:45:08

Re: Ошибка "Trying to get property of non-object"

Спасибо большое! Конечно, устроит:)

Не в сети

Подвал раздела