2014-11-21 3 views
0

Моя цельLaravel SQL запрос слишком большой

Является ли создать простой DB навигатор для пользователей лямбда. Для этого у меня есть боковой панели, которая содержит все 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' => '[email protected]_bdd', 'as' => 'navigateur_bdd')); 
Route::get('navigateur_bdd/{table_name}', array('uses' => '[email protected]_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> 

Что hapenning сейчас? При нажатии на имена таблиц, таких как «administratif» или «ERREUR» ОК

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

EDIT: Некоторые таблицы с префиксом работают. Не все, я не знаю, почему ... Как и "переключатель" префикс:

"switch" 
"switch_module" 

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

"switch_arp" 
routeur_su 
routeur_gsu 

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

routeur_arp 

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

+0

Можете ли вы первым убедиться с помощью 'дд ($ аргумент)' в начале вашего контроллера, который получает передается имя таблицы правильно ли контроллер? – lukasgeiter

+0

Это правильно. Каждое имя таблицы выглядит правильно: string 'interface_ip_routeur' (length = 20) –

+0

И если вы делаете то же самое, но с '$ selected_table'? – lukasgeiter

ответ

0

Вы можете использовать функциональность Laravels pagination.
Он разбивает ваши данные на страницы и позволяет создавать ссылки для доступа к каждой странице ...

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

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

{{ $table_name->links() }} 
Смежные вопросы