Не выводит данные по конкретной записи (show) Laravel

195
08 декабря 2017, 05:12

Очень нужна ваша помощь, что-то подтупливаю с утра) Есть куча записей

@if($products->count())
    @foreach($products as $product)
            <div class="col-md-4">
                <h2>{{ $product->product_title }}</h2>
                @if($product->product_status == "true")
                <h4>Начало торгов: {{ $product->product_start_trading }}</h4>
                @else
                <h4>Аренда</h4>
                @endif
                <p>{{ str_limit($product->product_description, 250, '...') }}</p>
                <p><a href="{{ url('/object', $product->product_id) }}">Подробнее »</a></p>
            </div>
    @endforeach
@endif

У каждой записи есть ссылка "Подробнее", по нажатию которой мы должны переходить на страницу show. В контролере:

public function show(Product $product)
{
    return view('product.show', compact('product'));
}

В роутах:

Route::get('object/{id}', 'ProductController@show');

На странице show:

<div class="container">
    <ul class="nav nav-pills">
        <li class="active"><a href="{{ url('/') }}">Все объекты</a></li>
        <li><a href="#">Продажа</a></li>
        <li><a href="#">Аренда</a></li>
    </ul>
    <div class="blog-post">
        <h2 class="blog-post-title">{{ $product->product_title }}</h2>
            <p class="blog-post-meta">January 1, 2014 by <a href="#">Mark</a></p>
            <p>{{ $product->product_description }}</p>
    </div>
</div>

На страницу переходит, нужный id-шник видит, проблема в том, что данные не выводит. В результате вижу только эту строку:

<p class="blog-post-meta">January 1, 2014 by <a href="#">Mark</a></p>
Answer 1

Вы пытаетесь пользоваться Model binding, но в роуты передаете параметр id, хотя в вашем случае нужно product:

Route::get('object/{product}', 'ProductController@show');

А так получается что не срабатывает привязка по модели и на вьюху идет пустой объект Product, и по этой причине у вас нет данных на странице.

По умолчанию идет поиск по id, в вашем же случае нужно добавить в класс Product метод getRouteKeyName чтобы изменить поле для поиска:

public function getRouteKeyName()
{
    return 'product_id';
}
READ ALSO
$_GET запрос некорректно работает

$_GET запрос некорректно работает

Делаю самостоятельно календарьИспользуя $_GET получаю месяц и год

141
Как распределить сообщение?

Как распределить сообщение?

Как распределить сообщение таким образом? допустим я справа и собеседник слеваМеня интересует как это реализовать на PHP MYSQL

150
как получить значение строки по id в yii2

как получить значение строки по id в yii2

ребят у меня есть таблица product в ней есть строка организация_id, при заполнении таблицы туда передается id организации,

165
Как сделать условие для вывода полей Advanced Custom Fields в WordPress?

Как сделать условие для вывода полей Advanced Custom Fields в WordPress?

Подскажите, пожалуйста, как написать условие, чтобы вывод поля ACF делался только тогда, когда, оно заполненоПотому что если в записе поле не заполнено...

179