Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
роут "/news" или аяксовый вариант "/news?type={type} вызывает следующий экшн:
public function getNewsPage(Request $request)
{
if(isset($request->type)){
switch($request->type){
case 'news': $type = 'Новости';
break;
case 'blog': $type = 'Блог';
break;
case 'case': $type = 'Кейсы';
break;
}
$newsf = News::where('type', $type)->paginate(5);
$header = News::where('type', $type)->take(1)->get();
foreach($header as $header)
$head = $header->id;
return view('tags', ['newsf' => $newsf, 'header' => $head]);
}else{
$newsf = News::paginate(5);
$header = News::take(1)->get();
foreach($header as $header)
$head = $header->id;
return view('news', ['newsf' => $newsf, 'header' => $head]);
}
}
данные получаются в обоих случаях, после чего передаются во вьюху 'news' (или 'tags' - тоже самое, только без "лишнего"), внизу которых есть $news->links() , для выводя кнопок пагинации ("далее", "назад" и номера страниц).
теперь вопрос.
когда я попадаю на страницу /news через меню на сайте, то всё как надо.
но если я клацаю НА странице /news на выбор тэга для вывода, то выполняется ajax-запрос /news?type , который заменяет контент роута /news на контент роута /news?type= . окей, всё тоже работает отлично. а вот кнопки пагинации всё так же водят по ВСЕМ новостям, без учета поля type.
Не в сети
вот сюда вьюха news.blade.php:
@include('layouts.header')
<div class="scr-bot-ov"></div>
<div class="container animate-content news_open">
<div class="row news wow fadeIn" data-wow-duration="2.0s">
<div class="col-sm-12">
<div class="zag">Новости / Блоги / Кейсы</div>
<div class="title">Полезные статьи по юриспруденции - <br />Блог юристов компании</div>
<div class="category">
<ul>
<li id='news' class="active">Все новости</li>
<li id='blog' >Блоги</li>
<li id='case' >Кейсы</li>
</ul>
</div>
</div>
</div>
<div id='anque'>
@foreach ($newsf as $news)
@if ($news->id == $header)
<a href="/news-{{$news->id}}" class="col-sm-12 an-block-link">
<div class="row news_main_pre_text">
<div class="col-sm-10 centered wow fadeIn" data-wow-duration="2.0s">
<span class="date">
@if ($news->type == 'Блог')
Блог юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@elseif($news->type == 'Кейсы')
Кейсы юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@else Новости юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@endif
</span>
<span class="article_title">{{$news->title}}</span>
</div>
</div>
<div class="row news_main_image">
<div class="col-sm-10 centered wow fadeIn" data-wow-duration="2.0s">
<div class="wow img-slide animate-start">
<div class="bg"></div>
<img src="{{asset('/attachmentFiles/'.$news->header)}}">
</div>
</div>
</div>
<div class="row news_main_txt">
<div class="col-sm-10 centered wow fadeIn" data-wow-duration="2.0s">
<p>{{$news->smallcontent}}</p>
<span class="button" >Читать дальше</span>
</div>
</div>
</a>
@elseif ($news->id%2 !=0)
<a href="/news-{{$news->id}}" class="col-sm-12 blog vertical-align an-block-link">
<div class="col-sm-5 img wow fadeIn" data-wow-duration="2.0s">
<div class="wow img-slide animate-start">
<div class="bg"></div>
<img src="{{asset('/attachmentFiles/'.$news->img)}}">
</div>
</div>
<div class="col-sm-5 col-sm-offset-2 text wow fadeIn" data-wow-duration="2.0s">
<div class="an-line-zag">
<div class="animate-line"></div>
<div class="zag">@if ($news->type == 'Блог')
Блог юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@elseif($news->type == 'Кейсы')
Кейсы юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@else Новости юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@endif
</div>
</div>
<div class="title">{{$news->title}}</div>
</div>
</a>
@else
<a href="/news-{{$news->id}}" class="col-sm-12 blog vertical-align an-block-link">
<div class="col-sm-5 col-md-5 col-sm-push-7 img wow fadeIn" data-wow-duration="2.0s">
<div class="wow img-slide animate-start">
<div class="bg"></div>
<img src="{{asset('/attachmentFiles/'.$news->img)}}">
</div>
</div>
<div class="col-sm-5 col-md-5 col-sm-pull-5 col-sm-offset-0 text wow fadeIn" data-wow-duration="2.0s">
<div class="an-line-zag">
<div class="animate-line"></div>
<div class="zag">@if ($news->type == 'Блог')
Блог юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@elseif($news->type == 'Кейсы')
Кейсы юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@else Новости юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@endif</div>
</div>
<div class="title">{{$news->title}}</div>
</div>
</a>
@endif
@endforeach
<div class="col-sm-12 pag">
<ul>
{{$newsf->links()}}
</ul>
</div>
</div>
</div>
<div class="row foot">
<a href="/life" class="col-sm-12 menu">
<div class="vcentre">
<div class="more">далее</div>
<div class="title">Жизнь</div>
<div class="arrow_down"></div>
</div>
</a>
</div>
@include('layouts.footer')
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/scripts.js"></script>
<script src="js/wow.js"></script>
</body></html>
вот js:
$('.category ul li').on('click', function(e){
var type = e.target.id;
$.ajax({
data: type,
method: 'GET',
url: '/news?type=' + type,
success: function(txt){
console.log(txt);
alert('success!');
$('#anque').html(txt);
}
});
});
то есть при выполнении аякса, мы получаем нужную инфу с базы, пихаем её во вьюху tags (ниже) и рез-ат возвращаем скрипту, который заменяет содержимое блока div#anque (в котором весь контент + ссылки пагинации, как можно будет увидеть ниже) на рез-ат.
tags.blade.php:
@foreach ($newsf as $news)
@if ($news->id == $header)
<a href="/news-{{$news->id}}" class="col-sm-12 an-block-link">
<div class="row news_main_pre_text">
<div class="col-sm-10 centered wow fadeIn" data-wow-duration="2.0s">
<span class="date">
@if ($news->type == 'Блог')
Блог юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@elseif($news->type == 'Кейсы')
Кейсы юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@else Новости юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@endif
</span>
<span class="article_title">{{$news->title}}</span>
</div>
</div>
<div class="row news_main_image">
<div class="col-sm-10 centered wow fadeIn" data-wow-duration="2.0s">
<div class="wow img-slide animate-start">
<div class="bg"></div>
<img src="{{asset('/attachmentFiles/'.$news->header)}}">
</div>
</div>
</div>
<div class="row news_main_txt">
<div class="col-sm-10 centered wow fadeIn" data-wow-duration="2.0s">
<p>{{$news->smallcontent}}</p>
<span class="button" >Читать дальше</span>
</div>
</div>
</a>
@elseif ($news->id%2 !=0)
<a href="/news-{{$news->id}}" class="col-sm-12 blog vertical-align an-block-link">
<div class="col-sm-5 img wow fadeIn" data-wow-duration="2.0s">
<div class="wow img-slide animate-start">
<div class="bg"></div>
<img src="{{asset('/attachmentFiles/'.$news->img)}}">
</div>
</div>
<div class="col-sm-5 col-sm-offset-2 text wow fadeIn" data-wow-duration="2.0s">
<div class="an-line-zag">
<div class="animate-line"></div>
<div class="zag">@if ($news->type == 'Блог')
Блог юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@elseif($news->type == 'Кейсы')
Кейсы юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@else Новости юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@endif
</div>
</div>
<div class="title">{{$news->title}}</div>
</div>
</a>
@else
<a href="/news-{{$news->id}}" class="col-sm-12 blog vertical-align an-block-link">
<div class="col-sm-5 col-md-5 col-sm-push-7 img wow fadeIn" data-wow-duration="2.0s">
<div class="wow img-slide animate-start">
<div class="bg"></div>
<img src="{{asset('/attachmentFiles/'.$news->img)}}">
</div>
</div>
<div class="col-sm-5 col-md-5 col-sm-pull-5 col-sm-offset-0 text wow fadeIn" data-wow-duration="2.0s">
<div class="an-line-zag">
<div class="animate-line"></div>
<div class="zag">@if ($news->type == 'Блог')
Блог юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@elseif($news->type == 'Кейсы')
Кейсы юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@else Новости юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@endif</div>
</div>
<div class="title">{{$news->title}}</div>
</div>
</a>
@endif
@endforeach
<div class="col-sm-12 pag">
<ul>
{{$newsf->links()}}
</ul>
</div>
Изменено Anque (27.10.2017 08:49:38)
Не в сети
Всё нормально, крыша потекла :]
Не в сети
Страницы 1