2014-12-14 5 views
0

Я создаю проект, который извлекает данные из XML-фида в одну таблицу MySQL. Это большой стол (1M + строк) со следующими полями:Laravel Модели с одной табличной базой данных

  • ID
  • created_at
  • updated_at
  • last_seen
  • seller_id
  • product_link
  • продавец
  • seller_category
  • имя
  • цена
  • изображения
  • описания

Всех учебники и документация, которую я нахожу вокруг, кажется, относится к нескольким связанным таблицам, это не мой случай.

Какие модели я должен создать, имея в виду, что следующие поиски будет сделано:

ВЫБРАТЬ имя, цена, изображение, описание из таблицы, где имя, как «% независимо%»

SELECT COUNT (*) FROM table WHERE seller_category LIKE '% one_category%' ИЛИ ​​seller_category LIKE '% other_category%

Я прочитал, что должен создать класс с общедоступной статической функцией, которая расширяет DB ::, однако я теряюсь с что.

Большое спасибо заранее, любая помощь будет оценена по достоинству.

+1

Почему вы хотите, чтобы все данные в одной таблице? – lukasgeiter

+0

Сколько моделей вы указали на эту таблицу? – msturdy

+1

Обратите внимание, что при запуске оператора 'LIKE' с префиксным шаблоном вы будете запускать полное сканирование таблицы. Для строк 1M +, которые могут повредить производительность – Ortix92

ответ

0

Вы можете просто создать красноречивую модель как обычно, а затем вы можете запустить что-то вроде:

YourModel::where('name','LIKE','%whatever%');

Ничего особенного на самом деле.

Модель:

<?php 

class YourModel extends \Eloquent 
{ 

    protected $fillable = []; // all your fillable fields 


} 
+0

Hi Ortix Я создал 'приложение/модели/Articulo.php' $ result) { echo "$ id \ n"; } }); Однако, если я открываю браузер и указываю на http: // localhost: 8000/iphone6, я просто получаю ответ HTTP 200 без содержимого. – Javier

+0

Черт, эта форма комментария собирается убить меня. См. Http://pastebin.com/bSMkrfwn для форматированного текста. – Javier

Смежные вопросы