2016-08-25 5 views
0

Попытка реализовать кнопку «Загрузить еще», через страницу Laravel(). Я получаю зависание со вторым вызовом db, когда запрашиваю больше. Я пробовал несколько разных вариантов, но, как вы можете видеть, это совершенно неверно.laravel 4.2 paginate load more button

Контроллер

public function displayItems() { 
     $items = DB::table('stuff')->paginate(100); 
     Session::put('items.page' , 0); 
     return View::make('pages/items', ['items' => $items]); 
    } 

public function displayMoreItems() { 
    if (Session::has('items.page')) { 
     $page = Session::get('items.page') + 1; 
     Session::put('items.page' , $page); 
     $items = DB::table('stuff')->paginate(100); 
     return View::make('pages/items', ['items' => $items]); 
    } 
} 

Маршрут

Route::get('/load/more' , [ 
    'as' => 'load.more' , 
    'uses' => '[email protected]' 
]); 

клинка

@foreach($items as $item) 
    <li>{{ $item->name }}</li> 
@endforeach 

<a id="load-more-btn" href="{{ route('load.more') }}" class="btn blue">Load More</a> 

JS

$('#load-more-btn').click(function (event) { 

    event.preventDefault(); 

    $btn = $(this); 

    $.ajax({ 
     url : $btn.attr('href'), 
     dataType : 'html', 
     timeout : 10000 
    }).done(function (data) { 
     if (!data) { 
     $btn.hide(); 
     return; 
     } 
     $btn.before(data); 
    }).fail(function (jqXHR, textStatus, error) { 
     if (textStatus == 'timeout') { 
     alert('Error, please try again later.'); 
     } 
     else { 
     alert('Error, please try again later.'); 
     } 
    }); 
}); 

ответ

0

Просто попробуйте это:

public function displayItems() { 
    $items = Stuff::paginate(100); 
} 

Обратите внимание, что: Stuff это название модели.

+0

У меня нет настройки модели. При попытке этого я получаю ошибку класса. Я добавил свой JS, хотя я не вижу в этом проблемы, это может быть неправильно – Klav

0

Добавить \Input::merge(array('page', $page)); в метод displayMoreItems().

+0

Является ли этот ввод создаваемым paginate? Иначе ничего не будет слито. Я действительно пробовал, хотя и без успеха – Klav