Laravel - Фильтр поиска в проблеме отношений при получении данных - PullRequest
0 голосов
/ 03 октября 2018

Попытка получить данные из таблицы «мобильные телефоны» и связанной с ней записи в Stock.В то время как мое ключевое слово для поиска относится к мобильной модели, см. Таблицу "Мобильные телефоны" ниже

enter image description here

, а соответствующая таблица "Акции" также находится ниже

enter image description here

Мобильная модель:

class Mobile extends Model
{
    public function company(){
        return $this->hasMany(Company::class);
    }
    public function stocks(){
        return $this->hasMany(Stock::class);
    }
}

Фондовая модель:

class Stock extends Model
{
    public function company(){
        return $this->belongsTo(Company::class, 'company_id');
    }
    public function mobiles(){
        return $this->belongsTo(Mobile::class, 'model_id');
    }
}

Индексный метод акции:

public function index(Request $request)
    {
      $request->session()->put('search', $request
        ->has('search') ? $request->get('search') : ($request->session()
          ->has('search') ? $request->session()->get('search') : ''));

      $request->session()->put('field', $request
        ->has('field') ? $request->get('field') : ($request->session()
          ->has('field') ? $request->session()->get('field') : 'model_id'));

      $request->session()->put('sort', $request
        ->has('sort') ? $request->get('sort') : ($request->session()
          ->has('sort') ? $request->session()->get('sort') : 'asc'));

      $stocks = new Stock();

      $stocks = $stocks->where('model_id', 'like', '%' . $request->session()->get('search') . '%')
      ->orderBy($request->session()->get('field'), $request->session()->get('sort'))
      ->paginate(5);

      if ($request->ajax()) {
        return view('pages.stock.index_stock', compact('stocks'));
      } else {
        return view('pages.stock.ajax', compact('stocks'));
      }      
    }

Проблема в том, что я могу искать, используя идентификатор модели, потому что фильтр поиска установлен в таблице "stock", столбец "model_id".Как выполнить поиск, написав название модели мобильного телефона, которое существует в таблице «мобильные телефоны», после поиска модели должно отображаться полная информация, относящаяся к модели мобильного поиска.

Заранее спасибо.

...