Я пытаюсь сделать предложение where в методе withCount для красноречивого построителя запросов laravel, используя этот кусок кода.Laravel, используя предложение where в методе withCount
$posts = Post::withCount('upvotes')->where('upvotes_count', '>', 5)->get();
и этот код дает мне эту ошибку.
SQLSTATE [42S22]: Колонка не найден: одна тысяча пятьдесят-четыре Неизвестный столбец 'upvotes_count' в 'где предложение' (SQL: выберите , (выберите отсчет () от
upvotes
гдеupvotes
upvoteable_id
=posts
id
иupvotes
.. .upvoteable_type
= App \ Post), какupvotes_count
изposts
гдеupvotes_count
> 5)
так от того, что я могу предположить, что это upvotes_count не выбран, и, следовательно, столбец не найден, но если я выполняю-й является частью кода.
$posts = Post::withCount('upvotes')->get();
Тогда я получаю этот выход.
{
"id": 1,
"user_id": 15,
"title": "Voluptatum voluptas sint delectus unde amet quis.",
"created_at": "2016-10-07 13:47:48",
"updated_at": "2016-10-07 13:47:48",
"upvotes_count": 7
},
{
"id": 2,
"user_id": 2,
"title": "Molestiae in labore qui atque.",
"created_at": "2016-10-07 13:47:48",
"updated_at": "2016-10-07 13:47:48",
"upvotes_count": 2
},
Который в основном означает, что upvotes_count будет выбран, следовательно, я действительно путают о том, как решить эту проблему.
(Другие варианты, которые я пытался до сих пор приведены ниже с соответствующей ошибкой, связанной с ним.)
$posts = Post::where('id', $id)->withCount(['upvotes' => function($query) {
$query->where('upvotes_count', '>', 5);
}])->get();
ошибка.
SQLSTATE [42S22]: Колонка не найдено: 'upvotes_count' не поддерживается (вперед ссылка в списке элементов) 1247 Reference (SQL: выберите , (SELECT COUNT () из
upvotes
, гдеupvotes
upvoteable_id
=posts
..id
иupvotes
.upvoteable_type
= App \ сообщение иupvotes_count
> 5) в качествеupvotes_count
изposts
, гдеid
= 1)
код.
$posts = Post::where('id', $id)->with(['upvotes' => function($query) {
$query->select('upvoteable_id AS upvotes_count');
}])->where('upvotes_count', '>', 5)->get();
И
$posts = \App\Post::where('id', $id)->with(['upvotes' => function($query) {
$query->selectRaw('upvoteable_id AS upvotes_count');
}])->where('upvotes_count', '>', 5)->get();
ошибка.
SQLSTATE [42S22]: Column не найдено: 1054 Неизвестный столбец 'upvotes_count' в 'где предложение' (SQL: SELECT * FROM
posts
гдеid
= 1 иupvotes_count
> 5)
Я просто хочу использовать where where для метода count(), который находится в отношениях с родительской моделью.
Там нет столбца называется «upvotes_count» в таблице, как я, выбрав его с помощью метода withCount(), который приводит в добавлении этого столбца «upvotes_count» в экземпляр построителя запросов. – Drazxier
Не могли бы вы рассказать мне, какова ваша проблема в одной строке? , потому что я вижу, что вы пытаетесь сделать предложение where, предлагающее db принести строки, у которых upvotes меньше числа, и нет столбца, который называется upvotes count, и вы знаете, что: D в чем проблема сейчас? –
Мне бы хотелось поговорить с вами, и поскольку SO-комментарии не лучшее место для этого, давайте продолжим наш разговор в facebook. – Drazxier