У меня есть две таблицы Должности и sharedposts. В таблице sharedposts есть столбцы «user_id», «updated_at» и «post_id», где в сообщениях таблица имеет «id», «title» и «body». Я знаю об отношениях, чтобы связать обе таблицы. Все, что я хочу сделать, это отобразить каждый пост, упорядоченный по «updated_at» из обеих таблиц. Пожалуйста, помогите с построителем запросов и красноречивым способом. ThankuПолучение данных из нескольких таблиц в laravel5
ответ
код не тестировался, но вы можете попробовать это:
Post::whereHas('sharedpost',function($query){
$query->orderBy('updated_at');
})->get()
Может быть, немного другой подход, если не будет много обновлений моделей? Таким образом, я полагаю, что чтение должно быть быстрее (кто-то пожалуйста, поправьте меня, если я ошибаюсь, здесь)
Добавить поле в таблицу, создав новую миграцию и adding
$table->timestamp('last_updated');
Затем с помощью Events обновления поля всякий раз, когда Post
или SharedPost
обновляется, добавив в AppServiceProvider
:
public function boot()
{
Post::saving(function ($post) {
$post->last_updated = Carbon::now();
});
}
Я не уверен, если это будет работать, хотя и это было бы понятно, если вы Returne d обратной связи, так как я ленив попробовать себя в данный момент :). Худший случай может возникнуть необходимость изменить метод, как:
public function boot()
{
SharedPost::saved(function ($sharedpost) {
$sharedpost->post->last_updated = Carbon::now();
$sharedpost->save();
});
}
или вы могли бы проверить наблюдатель, если вы не хотите, чтобы код в AppServiceProvider
. Не использовали его, но это кажется простым.
Тогда вы могли бы просто Post::orderBy('last_updated')->get();
Таким образом, вы будете иметь один или два входа в базу данных, но я думаю (и ребята, пожалуйста, поправьте меня, если я ошибаюсь) get()
должен быть быстрее. Имейте в виду, что я далек от эксперта MySQL.
И в конце вы можете сделать это еще быстрее, сохранив эти данные в Cache, используя Redis.
- 1. Получение данных из нескольких таблиц
- 2. Получение нескольких данных из нескольких таблиц
- 3. Получение данных из нескольких таблиц в mysql
- 4. Получение данных из нескольких таблиц в SQL
- 5. CakePHP получение данных из нескольких таблиц
- 6. MySQL: получение данных из нескольких таблиц
- 7. SQL получение данных из нескольких таблиц
- 8. Получение данных объекта из нескольких таблиц help
- 9. Получение данных из нескольких таблиц SQLite
- 10. Получение данных из нескольких связанных таблиц MySQL
- 11. Получение данных из нескольких таблиц MySql?
- 12. Получение информации из нескольких таблиц
- 13. Получение данных из нескольких таблиц в базе данных android sqlite
- 14. Laravel5 Eloquent выбрать из нескольких таблиц с предложением
- 15. Mysqli Получение нескольких значений из нескольких таблиц
- 16. Получение значений из нескольких таблиц в mysql
- 17. liferay получение данных из нескольких таблиц из разных портлетов
- 18. Получение данных из нескольких таблиц в Liferay 6.0.6
- 19. Получение данных из нескольких таблиц в одном отчете о кристалле
- 20. Получение данных из нескольких таблиц в одну строку, а
- 21. Получение значений из нескольких таблиц в MySQL
- 22. Получение нескольких таблиц данных с помощью php
- 23. Получение суммы нескольких столбцов из двух таблиц
- 24. Получение данных из связанных таблиц
- 25. Получение данных из 2 таблиц
- 26. Объединение и объединение данных из нескольких таблиц
- 27. Использование данных из нескольких таблиц
- 28. Объединение Mysql из нескольких таблиц базы данных
- 29. Фильтрация данных из нескольких таблиц
- 30. Извлечение данных из нескольких таблиц
Что вы пытаетесь сделать в основном? – root
Сортировка всех сообщений по столбцу updated_at в таблице sharedpost. – smartrahat
да, я думаю, что это работает, позвольте мне проверить – root