Проблема с извлечением данных из базы данных во многих отношениях со многими в Laravel - PullRequest
1 голос
/ 01 июля 2019

У меня есть форма поиска, чтобы перечислить свойства / объявления по определенным критериям.У меня есть переключатель с двумя вариантами (предложение, спрос).Я хочу, когда я нажимаю на любой, чтобы перечислить все свойства, которые связаны с этой опцией.У меня есть много-много отношений с сводной таблицей.У меня возникли проблемы, чтобы написать функцию в контроллере, который будет соединять таблицы и отображать их в поле зрения.У меня есть три таблицы.

properties (id, city, price)

categories (id, category, priority)

category_property (property_id, category_id)

В таблице категорий в строке категории есть «предложение» и «спрос», и обе имеют 0 значений в строке приоритета.Когда я нажимаю кнопку «Отправить», появляется таблица, но без результатов.Когда я дд ($ property);в контроллере я получаю это

BelongsToMany {#282 ▼
#table: "category_property"
#foreignPivotKey: "property_id"
#relatedPivotKey: "category_id"
#parentKey: "id"
#relatedKey: "id"
#relationName: "category"
#pivotColumns: []
#pivotWheres: []
#pivotWhereIns: []
#pivotValues: []
+withTimestamps: false
#pivotCreatedAt: null
#pivotUpdatedAt: null
#using: null
#accessor: "pivot"
#query: Builder {#270 ▶}
#parent: Property {#287 ▶}
#related: Category {#271 ▶}
-currentlyAttached: null
}

и когда я dd ($ results);Я получаю

Collection {#281 ▼
#items: []
}

Любая помощь с благодарностью.Вот мой код:

CategoryController.php

<?php
namespace App\Http\Controllers;

use App\Category;
use App\Http\Controllers\Controller;
use App\Property;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Redirect;

class CategoryController extends Controller
{
    public function index()
    {
        return view('categories.search', compact('data'));
    }

    public function search($propertyBidAsk, $propertyType, $propertyPayment, $city, $price, $quadrature, Request $request, Property $property)
    {
        $category = $property->category;

        if (!empty($request->propertyBidAsk)) {
           $property = $property->category()->where('category', $request->propertyBidAsk);
        }

        dd($property);

        $results =  $property->get();

        return view('categories.search', compact('category', 'results'));
    }

}

search.blade.php

<div>

    @if(isset($results))
        <table class="table">
            <thead>
                <th>Property Bid Ask</th>
            </thead>
            <tbody>

            @foreach ($results as $result)
                <tr>
                    <td>{{ $result->category[0]->category }}</td>
                </tr>
            @endforeach

          </tbody>
        </table>
      @endif

 </div>

 <form id="searchForm" method="GET" action="/search">
     <div class="col-md-4 mb-6">
         <h5>Payment</h4>
         <div class="d-block my-3">
             <div class="custom-control custom-radio">
                 <input id="offer" name="propertyBidAsk" value="offer" type="radio" class="custom-control-input">
                 <label class="custom-control-label" for="offer">Offer</label>
            </div>
            <div class="custom-control custom-radio">
                <input id="demand" name="propertyBidAsk" value="demand" type="radio" class="custom-control-input">
                <label class="custom-control-label" for="demand">Demand</label>
            </div>
         </div>
      </div>
     <button class="btn btn-primary btn-lg btn-block" type="submit">Search</button>
</form>

web.php:

Route::get('/search', 'CategoryController@index');

Route::get('/search/{propertyBidAsk}/{propertyPayment}/{propertyType}/
{city}/{price}/{quadrature}', 'CategoryController@search');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...