Однонаправленный и двунаправленный почти одинаковы, разница в том, что когда он однонаправленный, вы можете выполнять только $ candidat-> getExperience (), а когда он двунаправленный, вы можете использовать как $ candidat-> getExperiences (), так и $ experience-> getCandidat.(), у вас будут оба поля на обеих сущностях
Это довольно логичная проблема, здесь я предлагаю, чтобы это было однонаправленное отношение, поскольку опыт не имеет смысла без кандидата, поэтому, если у вас есть поле, у вас естьДругой.Примером правильного двунаправленного отношения является владелец и автомобиль, автомобиль может существовать без владельца, поэтому было бы логично разрешить $ car-> getOwner вместе с $ owner-> getCars ()
И это также зависито том, как вы собираетесь использовать отношение, вам нужны обе функции или нет ...