Laravel по-русски

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

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

#1 24.05.2016 21:03:48

TrueKanonir
Откуда: Ташкент
Сообщений: 221

Не получается вывести посты через ленивую загрузку

Здравствуйте.
Не получается вывести не посты, не производителей с ленивой загрузкой и без нее. Связь использую 1 к многим и многие к многим.

// BrandsController
    /**
     * Show brand page
     *
     * @param $slug
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    public function showBrand($slug)
    {
        $brand = Brand::with('cars')->FindBySlug($slug);

        return view('frontend.sections.brand.show', compact('brand'));
    }
// view
@foreach($brand->car as $car)
<div class="col-md-3 col-lg-3">
    <div class="text-center">
        <a href="{{ url('cars/'.$car->slug) }}">
            <img src="{{ $car->image }}" />
        </a>
    </div>
</div>
@endforeach

Многие ко многим

    // CarController
    /**
     * Show car
     *
     * @param $slug
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    public function showCar($slug)
    {
        $car = Car::FindBySlug($slug);

        return view('frontend.sections.car.show', compact('car'));
    }
    // view
    @foreach($car->filters as $filter)
        {{ $filter->name
    @endforeach

В обоих случаях выходит null, хотя в базу все добавилось.

id    product_id    filter_id
1     29               1

функция FindBySlug

    /**
     * Find by slug
     *
     * @param $query
     * @param $slug
     * @return mixed
     */
    public function scopeFindBySlug($query,$slug)
    {
        return $query->whereSlug($slug)->firstOrFail();
    }

Не в сети

#2 08.07.2016 01:20:25

Re: Не получается вывести посты через ленивую загрузку

Find как я знаю это получение одной записи. Так зачем использовать цикл?

Не в сети

#3 08.07.2016 01:38:05

Re: Не получается вывести посты через ленивую загрузку

А все правильно это я тормознул.
Попробуй так 
$brand = Brand::with('cars')->where('slug', '=', '$slug')->first()

Не в сети

#4 27.09.2016 16:08:24

TrueKanonir
Откуда: Ташкент
Сообщений: 221

Re: Не получается вывести посты через ленивую загрузку

bibimoto пишет:

А все правильно это я тормознул.
Попробуй так 
$brand = Brand::with('cars')->where('slug', '=', '$slug')->first()

Проблема давно решилась. Забыл чето про вопрос этот. Мой косяк был, вместо hasMany написал belongsTo

Не в сети

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