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

Доктрина 2:Не може да се избере обект чрез идентификационни променливи, без да се избере поне един псевдоним на основния обект

Вашият проблем е, че се опитвате да изберете едно поле от обекта Категория, като едновременно с това избирате целия обект на присъединения обект Категория. За разлика от обикновения SQL, с компонента QueryBuilder не можете да изберете обект само от таблицата, към която се присъединявате.

Ако искате да върнете основния си обект Category с присъединените деца, можете да направите или ->select(array('c', 'cc')) , или просто пропуснете ->select() обадете се напълно. Първият автоматично ще избере децата, от които се нуждаете, в една заявка. Последното ще изисква друга SQL заявка, ако искате да получите достъп до деца в основния обект на категорията.

Ако има причина да искате name за да изберете като title във вашия обект винаги можете да добавите друга функция към вашия обект, която е псевдоним за извличане на името, вместо да се налага да го пишете в заявката си:

function getTitle()
{
    return $this->getName();
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да намерите определени шестнадесетични стойности и Char() стойности в MySQL SELECT

  2. Използване на fork в Ruby on Rails за създаване на паралелен процес

  3. използвайте стойността на колоната като име на колона mysql

  4. получите общо за лимит в mysql, като използвате същата заявка?

  5. Нуждаете се от помощ за оптимизиране на географско търсене по ширина/дълга за mysql