Laravel по-русски

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

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

#1 Re: Поиск работы » Ищу работу, Junior Web Developer (Laravel 5+) удаленно » 05.12.2016 13:07:20

Работу нашел, тема не акктуальна. Всем спасибо за отклики.

#2 Re: Поиск работы » Ищу работу, Junior Web Developer (Laravel 5+) удаленно » 28.11.2016 12:31:30

Сорри, не получил ничего, возможно, потому что почта указана неверно. marat_khuzin@mail.ru

#3 Поиск работы » Ищу работу, Junior Web Developer (Laravel 5+) удаленно » 29.10.2016 12:33:06

zombie_squad
Ответов: 4

Опыт взаимодействия с фреймворком Laravel - 2+ года, начинал с 4 версии.
Работаю на Ubuntu 14.04 в PhpStorm IDE.
БД - mysql. Работал с Redis, memcached, rabbitmq.
Javascript, jquery, ajax запросы.
Vcs - Git.
Английским владею на достаточном уровне, чтобы читать документацию и обучаться на иноземных ресурсах.
Есть опыт разработки в команде.
Несколько моих проектов можно посмотреть тут:
http://bitbucket.com/marat_khuzin

Почта - marat_khuzin@maik.ru
Skype - marikkhuzin

#4 Re: Laravel 4 » Подсчитать количество новостей в категории » 08.02.2014 02:37:20

так я и понял, что все должно быть ок. Но

dd($nums);

дает:

array(2) {
  [0]=>
  object(stdClass)#179 (1) {
    ["count"]=>
    string(1) "2"
  }
  [1]=>
  object(stdClass)#180 (1) {
    ["count"]=>
    string(1) "3"
  }
}

т.е. нет тут поля category? только count осталось. я что-то упустил? или туплю?

#5 Re: Laravel 4 » Подсчитать количество новостей в категории » 08.02.2014 01:08:29

в общем...использовал ваш первый код, только в таком виде

SELECT categories.*, COUNT(1) AS count FROM categories JOIN posts ON category_id = categories.id GROUP BY categories.id

и пришел к такому виду в Laravel

$catpostsnum = DB::table('categories')->join('posts', 'category_id', '=', 'categories.id')->groupBy('categories.id')->select(DB::raw('count(1) AS count'))->get();

все работает.

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

		$category = Category::all();
		$nums = DB::table('categories')->join('posts', 'category_id', '=', 'categories.id')->groupBy('categories.id')->select(DB::raw('count(1) AS count'))->get();
	
		foreach ($category as $cat) 
                {
			
			echo $cat->category;
		}

		foreach ($nums as $num) 
		{	
			
			echo $num->count;
		}

как вы поняли, выводится все в виде:

Первая категория 
Вторая категория
(2)
(3)

вот теперь думаю, как foreach вложить в foreach. вроде такого еще не видел. нет никаких мыслей?
или из запроса с количеством новостей можно как-то и названия вырезать? просто в phphmyadmin при запросе

SELECT categories.*, COUNT(1) AS count FROM categories JOIN posts ON category_id = categories.id GROUP BY categories.id

имеется оба нужных поля Category и Count.

#7 Re: Laravel 4 » Подсчитать количество новостей в категории » 08.02.2014 00:00:39

так-c? По первому коду вылетает ошибка:

Argument 1 passed to Illuminate\Database\Grammar::columnize() must be an array, string given, called in /var/www/guestbook.dev/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php on line 112 and defined

со вторым запросом даже phpmyadmin не справился. ошибка USE NEAR. Порядок неправильный.

сейчас буду долбать код... вроде выход находится постепенно.

#8 Re: Laravel 4 » Подсчитать количество новостей в категории » 07.02.2014 23:46:10

ваш код не проверял, так как хотелось бы тоже самое, но с использованием Eloquent (туплю я с ним).
спасибо за подсказку, буду пробовать, как появится время, потом отпишусь.

#9 Re: Laravel 4 » Подсчитать количество новостей в категории » 07.02.2014 22:10:00

join уже включен, при создании Отношений.
Думаю, должно быть что-то похожее на (так, навскидку):

$categories = Category::with('post')->get(); // собрали все названия категорий

       foreach ($categories as $category) 
               {

			echo $category->category // здесь выводится название категории 

                        ' . (' // здесь лепим скобку '(' дизайна

                        count ((Category::with('post')->where('category', '=', $category->category)->get())) // здесь выводим кол-во новостей в категории

                        .')'; // Здесь лепим закрывающую скобку ')' дизайна
		}

На выходе должно получиться что-то типа:

Первая категория (15)
Вторая категория (20)
и т.д.

как я уже и писал.

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

Либо вместо get () в цикле использовать count ().... Только как посчитать то, что именно надо?....

#10 Laravel 4 » Подсчитать количество новостей в категории » 06.02.2014 23:51:18

zombie_squad
Ответов: 10

Доброго времени суток.
Суть проблемы такова:
Использую Laravel 4
Имеются две таблицы: Categories и Posts. Таблицы связаны между собой, т.е. все работает как надо, на страницах отлично выводятся посты и названия категорий, соответствующих постам.
Структура Категорий:

id, category (то бишь название), и таймстампы.

Структура Постов:

id, title, postmini, post, category_id, и таймстампы.

Хотел бы спросить знающих, как с использованием Eloquent подсчитать количество новостей в каждой категории, чтобы вывести их в виде Название категории (кол-во постов).
Примерно так:

Первая категория (15)
Вторая категория (12)
Третья категория (17)

Спасибо.

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