Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
через ORM бы проблем не имел )))
Не понял
установи EMS SQL Manager (для твоей БД My/Pg/Ora/MS)
ТАМ отладь свой запрос, и уже на основе него-родного пиши в ларе.
(все) будьте разумнее!
Спасибо, попробую. Никогда раньше не использовал.
Доброго времени суток.
$posts = self::selectRaw('users.login, posts.*, comments.id, COUNT(comments.id) as сomments_count,GROUP_CONCAT(DISTINCT(categories.name)) as cat_name')
->Join('users','users.id', '=', 'posts.author')
->Join('post_cat','post_cat.post_id', '=', 'posts.id')
->Join('categories','categories.id', '=', 'post_cat.cat_id')
->leftJoin('comments','comments.post_id','=','posts.id')
->orderBy('posts.created_at', 'DESC')
->groupBy('posts.id')
->paginate(10);
COUNT(comments.id) возвращает результат вдвойне. Если к посту есть 10 комментариев то результат вернет 20. Где косяк?
Здесь $id получает id пользователя из маршурта users/{users}, где {users} - наш id
далее для уникальных полей можно проигнорировать поле с конкретным id, в нашем случае все так и происходит.
спасибо, очень помогло. Тоже столкнулся с такой проблемой)
Так же не выводило изображения на странице.
Проблема была в шаблонизаторе. Нужно было место
{{ $posts->render() }}
написать
{!! $posts->render() !!}
Добрый день.
$posts->render()
Место ссылок на экран выводит простой текст:
<ul class="pagination"><li class="disabled"><span>«</span></li> <li class="active"><span>1</span></li><li><a href="x?page=2">2</a></li> <li><a href="x?page=2" rel="next">»</a></li></ul>
}%Со счётчиком есть проблема в том, что теряется целостность и получается дублирование данных. Его сложнее поддерживать (например, больше недостаточно сделать DELETE на комментарии, нужно также изменить счётчик). Насколько это проблемно - зависит от разных факторов (нагруженность, сложность архитектуры и пр.).
> нужно 20 раз считать комментарии для этой статьи.
Не обязательно.
%%(sql)
SELECT articles.*, COUNT(1) AS comment_count FROM articles
JOIN comments ON comments.article_id = articles.id
WHERE articles.foo = 'bar' AND ...
%%Скорость такой операции будет вполне хорошей, так как БД свяжет обе таблицы по индексам. Зато вы избавляетесь от лишнего счётчика.
$posts = Post::orderBy('created_at', 'DESC')
->select('posts.*', DB::raw('count(*) as comment_count'))
->join('comments', function($join){
$join->on('comments.post_id', '=', 'posts.id');
})
->paginate(3);
Помогите пожалуйста написать, а то всю голову сломал и не в какую(
в таблице posts записи, в таблице comments - комментарии. Нужно посчитать комментарии где сomments.post_id = posts.id. Как реализoвать в laravel.
Заранее спасибо.
Прошу прощения, все нормально работает. Просто я слепой)
Добрый день.
Создал свой свою каптчу(captcha.php), закинул ее в директорию public, но при выводе рисунок не выводит. Игрался с путями, ничего не помогло.
<img src="captcha.php"/>
Как указать путь к файлу?
Добрый день.
Как лучше сделать подсчет комментариев к статье.
1. Создать поле comments в таблице с статьями куда записывать +1 при добавлении нового материала и отнимать 1 при удалении.
2. Подсчитывать нужные комментарии в таблице комментариев, что мне кажется более глупо, при выводе 20 статей на странице, нужно 20 раз считать комментарии для этой статьи.
Первый вариант вроде лучше как по мне, но не очень удобен, как по мне.
Что посоветуете?
Тоже OpenServer. Только-что поставил 5 версию через компосер, все о.к.
Когда ставлю <php5.4 появляется выше приведенная ошибка.
Смотрите версию php, возможно конфигурация OpenServer не правильная
Спасибо за помощь. Действительно в настройка OpenServer стоял php 5.3, хотя я в настройках апача прописал путь к 5.5.
php 5.4+
Стоит OpenServer, php 5.5
Если ниже 5.4 то установщик ругается
Добрый день.
Возле имени моего пользователя(слева вверху) написано:"Последнее посещение: 01.01.1970 04:00:00"
Аккаунт только создан.
Добрый день.
Установил laravel 4.2, при открытии sitename/public/ выдает ошибку:
Parse error: syntax error, unexpected '[' in C:\OpenServer\domains\iti.local\vendor\laravel\framework\src\Illuminate\Support\helpers.php on line 426
устанавливал по инструкции с сайта "сomposer create-project laravel/laravel {directory} --prefer-dist 4.2"
При установке версии 5 ошибка:
C:\OpenServer\domains\iti.local\vendor\laravel\framework\src\Illuminate\Foundation\helpers.php on line 381
(и при установке с командной строки и при загрузке с github).
Кто-то сталкивался с данной проблемой?
Страницы 1