Mysql
 sql >> база данни >  >> RDS >> Mysql

Laravel ред по има много отношения

Важно е да разберете как работи нетърпеливото зареждане на Laravel. Ако желаем да заредим вашия пример, Laravel първо извлича всички нишки. След това извлича всички коментари и ги добавя към обекта нишки. Тъй като се използват отделни заявки, не е възможно да се подреждат нишки по коментари.

Вместо това трябва да използвате присъединяване. Имайте предвид, че предполагам имената на вашите таблици/колони в този пример.

$threads = Thread::leftJoin('comment', 'comment.thread_id', '=', 'thread.id')
    ->with('comments')
    ->orderBy('comment.created_at', 'desc')
    ->get();

Тъй като се присъединявате, може да се наложи ръчно да посочите колони, за да изберете имената на колоните на вашите таблици.

$threads = Thread::select('thread.*')->leftJoin('comment', 'comment.thread_id', '=', 'thread.id')
    ->with('comments')
    ->orderBy('comment.created_at', 'desc')
    ->get();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Завъртане на svg правоъгълници от базата данни

  2. грешка в mysql:превиши максималния брой връзки на час

  3. четене/записване на Unicode данни в MySql

  4. Анализирайте JSON в MySQL

  5. MySQL извлича променлива от Съхранена процедура в PHP PDO