Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 24.02.2015 20:34:31

Проверка существования постов в виде

Всем привет. Значит, делаю выводы постов/новостей в вид, при этом использую пагинацию. Суть в чём - как по нормальному проверять данные - есть ли они или нет, при том, что если использовать "paginate()", то проверки "@if(isset($posts) AND !empty($posts))" пофиг, есть ли данные или нет. А использую вместо "paginate()" -> "get()" - то проверка норм ведёт себя...

Как мне быть? Использовать пагинацию обязательно! Заранее спасибо!!!

Вот мой код (на всякий случай):

Модель:

public static function getIndexAll(){
	/**
	* Получение и вывод новостей для главной страницы
	*/
	$getIndexAll = DB::table('posts')
					->orderBy('date_add_posts', 'DESC')
						->join('category', 'posts.category_news', '=', 'category.id_category')
					->where('index_news', '=', '1')
					->paginate(Config::get('config.countGetPage'));

	return $getIndexAll;
}

Вид:

@extends('templates.home')

@section('content')
	@if(isset($posts) AND !empty($posts))
		Посты есть!
	@else
		Постов нет!
	@endif
@stop

Не в сети

#2 24.02.2015 20:59:12

Re: Проверка существования постов в виде

Убери empty

Не в сети

#3 25.02.2015 07:43:50

Re: Проверка существования постов в виде

вообще PHPpaginate возвращает PHPLengthAwarePaginator, у него есть методы PHPcount() и PHPisEmpty().

Изменено constb (25.02.2015 07:45:20)

Не в сети

#4 25.02.2015 09:30:18

Re: Проверка существования постов в виде

Благодарю за помощь!

Не в сети

#5 25.02.2015 11:59:06

Re: Проверка существования постов в виде

dima9595, Вам нужно где-то в отдельно блоке указать, есть ли posts? Или если есть, то вывести их, а если нет, то вывести "Постов нет"?
Если так, то в blade можно сделать так:

@forelse( $posts as $post )
    {{-- Выводим тут данные, если есть --}}
@empty
    <p>Постов нет!</p>
@endforelse

Не в сети

#6 25.02.2015 16:40:36

Re: Проверка существования постов в виде

Дмитрий пишет:

dima9595, Вам нужно где-то в отдельно блоке указать, есть ли posts? Или если есть, то вывести их, а если нет, то вывести "Постов нет"?
Если так, то в blade можно сделать так:

@forelse( $posts as $post )
    {{-- Выводим тут данные, если есть --}}
@empty
    <p>Постов нет!</p>
@endforelse

Благодарю за совет.

Я сделал так:

@if(isset($posts) AND !$posts->isEmpty())
	@foreach($posts as $post)
		Вывод постов
	@endforeach
@else
	Нет постов
@endif

Не в сети

Подвал раздела