Слишком большой SQL-запрос Laravel

Моя цель

Это создать простой навигатор БД для пользователей лямбда. Для этого у меня есть боковая панель, которая содержит все DB table_name

И в центре страницы мне нужны данные. Вот мои имена таблиц:

administratif
equipement
erreur
etablissement
interface_eth_routeur
interface_eth_switch
interface_ip_routeur
latence
mainteneur
routeur_arp
routeur_gsu
routeur_su
salle_visio
site
switch
switch_arp
switch_module

Вот код: ROUTES.PHP

Route::get('navigateur_bdd', array('uses' => 'HomeController@navigateur_bdd', 'as' => 'navigateur_bdd'));
Route::get('navigateur_bdd/{table_name}', array('uses' => 'HomeController@bdd_show_table', 'as' => 'bdd_show_table'));

HOMECONTROLLER.PHP

public function navigateur_bdd()
{
    $table_name = DB::select('SHOW TABLES');
    return View::make('navigateur_bdd', array('which_actif' => 3, 'table_name' => $table_name));
}

public function bdd_show_table($argument = NULL) {
    $selected_table = DB::table($argument)->get();
    $table_name = DB::select('SHOW TABLES');
    return View::make('navigateur_bdd', array('which_actif' => 3, 'table_name' => $table_name, 'selected_table' => $selected_table));
}

Первая функция — это основной вид, когда пользователь входит в эту область.

Вторая функция используется, когда пользователь нажимает на table_name на боковой панели основного представления.

NAVIGATEUR_BDD.BLADE.PHP

 <div id="sidebar-wrapper">
    <ul class="sidebar-nav" id="sidebar">   
      <li class="well">Liste des tables</li>  
      @for ($i = 0 ; $i < count($table_name); $i ++)
          <li><a href="{{ URL::to('navigateur_bdd/' . $table_name[$i]->Tables_in_MYNET)}}">{{$table_name[$i]->Tables_in_MYNET}}</a></li>
      @endfor
    </ul>
  </div>

Что сейчас происходит? Щелчок по именам таблиц, таким как "administratif" или "erreur", разрешен.

Но при нажатии на имена таблиц с префиксом типа "routeur_" отображается пустая страница без ошибок. Я ничего не устанавливал. префикс в файле database.php, потому что не все мои таблицы имеют префикс. Как я могу понять это?

РЕДАКТИРОВАТЬ: некоторые таблицы с префиксом работают. Не все, я не знаю почему... Как префикс "переключатель":

"switch"
"switch_module"

работают, но не

"switch_arp"
routeur_su
routeur_gsu

работают, но не

routeur_arp

После исследования у меня есть пустая страница в таблицах с большим количеством строк (например, 110 000) (пробовал с dd($selected_table)); Итак, это меняет название моего вопроса: как я могу сохранить эти 110 000 строк в переменной?


person Gui O    schedule 21.11.2014    source источник
comment
Можете ли вы сначала убедиться, используя dd($argument) в начале вашего контроллера, что имя таблицы правильно передается контроллеру?   -  person lukasgeiter    schedule 21.11.2014
comment
Верно. Каждое имя таблицы кажется правильным, как это: строка 'interface_ip_routeur' (длина = 20)   -  person Gui O    schedule 21.11.2014
comment
А если сделать тоже самое но с $selected_table?   -  person lukasgeiter    schedule 21.11.2014
comment
Он не отображается для таблиц, указанных ранее. Я понимаю. Таблица, для которой он не будет отображать переменную, - это таблицы, содержащие более 5000 строк (switch_arp имеет 110 000 строк). Что мне делать?   -  person Gui O    schedule 21.11.2014
comment
Думаете, у них много рядов? Что, если вы сделаете это DB::table($argument)->take(1000)->get()?   -  person lukasgeiter    schedule 21.11.2014
comment
Работает с 1000 строк   -  person Gui O    schedule 21.11.2014


Ответы (1)


Вы можете использовать функцию Laravel нумерации страниц.
Она разбивает ваши данные на страницы и позволяет вам генерировать ссылки для перехода на каждую страницу...

$selected_table = DB::table($argument)->paginate(100); // how many records you wan't on one page

И затем, на ваш взгляд, сделайте это, чтобы сгенерировать ссылки

{{ $table_name->links() }}
person lukasgeiter    schedule 21.11.2014