{"id":66,"date":"2011-09-28T01:11:16","date_gmt":"2011-09-28T01:11:16","guid":{"rendered":"http:\/\/info.ffteixeira.net\/2011\/09\/28\/cakephp-related-tables-show-ids-instead-of-values\/"},"modified":"2011-09-28T01:11:16","modified_gmt":"2011-09-28T01:11:16","slug":"cakephp-related-tables-show-ids-instead-of-values","status":"publish","type":"post","link":"https:\/\/blog.ffteixeira.net\/?p=66","title":{"rendered":"Cakephp related tables show id&#8217;s instead of values"},"content":{"rendered":"<p><span lang=\"EN-US\">Whenever CakePHP automagically fetches lists from your tables, it uses the<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">id<\/span><span lang=\"EN-US\">key for the value and the<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">$displayField<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">for the text.<\/span><\/p>\n<p><span lang=\"EN-US\">If your table has a<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">name<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">or<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">title<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">field, CakePHP automatically displays it as the display field. So, either rename the field that you want as your display field (say,<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">candidate_name<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">to just<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">name<\/span><span lang=\"EN-US\">) or set the<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">$displayField<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">variable in your model:<\/span><\/p>\n<p><span lang=\"EN-US\"><br \/>\n<!--more--><br \/>\n<span lang=\"EN-US\">Whenever CakePHP automagically fetches lists from your tables, it uses the<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">id<\/span><span lang=\"EN-US\">key for the value and the<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">$displayField<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">for the text.<\/span><\/p>\n<p><span lang=\"EN-US\">If your table has a<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">name<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">or<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">title<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">field, CakePHP automatically displays it as the display field. So, either rename the field that you want as your display field (say,<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">candidate_name<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">to just<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">name<\/span><span lang=\"EN-US\">) or set the<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">$displayField<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">variable in your model:<\/span><\/p>\n<p><span lang=\"EN-US\"><!--more-->\u00a0<\/span><\/p>\n<div>\n<p><span lang=\"EN-US\">class Candidate <\/span><span lang=\"EN-US\">extends<\/span><span lang=\"EN-US\"> AppModel {<\/span><\/p>\n<p><span lang=\"EN-US\">\u00a0\u00a0\u00a0 var $displayField = &#8216;candidate_name&#8217;;<\/span><\/p>\n<p><span lang=\"EN-US\">}<\/span><\/p>\n<\/div>\n<p><span lang=\"EN-US\">\u00a0<\/span><\/p>\n<p><span lang=\"EN-US\">If there is no other data being stored in the<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">qualificationlookups<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">table, change the relationship to<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">candidates -&gt; HABTM -&gt; qualifications<\/span><span lang=\"EN-US\">.<\/span><\/p>\n<p><span lang=\"EN-US\">To do this, you first need to drop the<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">qualificationlookups<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">table. Create a new table called<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">candidates_qualifications<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">with two indexes,<\/span><span lang=\"EN-US\">candidate_id<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">and<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">qualification_id<\/span><span lang=\"EN-US\">.<\/span><\/p>\n<p><span lang=\"EN-US\">In your<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">Candidate<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">and<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">Qualification<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">models, define a<\/span><span lang=\"EN-US\">\u00a0<\/span><a href=\"http:\/\/book.cakephp.org\/view\/1044\/hasAndBelongsToMany-HABTM\" target=\"_blank\" rel=\"noopener noreferrer\"><span lang=\"EN-US\">HABTM Relationship<\/span><\/a><span lang=\"EN-US\">. You do not need to make a new<\/span><span lang=\"EN-US\">\u00a0<\/span><span lang=\"EN-US\">CandidatesQualification<\/span><span lang=\"EN-US\">Model,<\/span><span lang=\"EN-US\">\u00a0cake\u00a0<\/span><span lang=\"EN-US\">will do it on the fly.<\/span><\/p>\n<p>From:\u00a0<a href=\"http:\/\/pinoytech.org\/question\/4558505\/cakephp-related-tables-show-ids-instead-of-values\">http:\/\/pinoytech.org\/question\/4558505\/cakephp-related-tables-show-ids-instead-of-values<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Whenever CakePHP automagically fetches lists from your tables, it uses the\u00a0idkey for the value and the\u00a0$displayField\u00a0for the text. If your table has a\u00a0name\u00a0or\u00a0title\u00a0field, CakePHP automatically displays it as the display field. So, either rename the field that you want as &hellip; <a href=\"https:\/\/blog.ffteixeira.net\/?p=66\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-66","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.ffteixeira.net\/index.php?rest_route=\/wp\/v2\/posts\/66","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ffteixeira.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ffteixeira.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ffteixeira.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ffteixeira.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=66"}],"version-history":[{"count":0,"href":"https:\/\/blog.ffteixeira.net\/index.php?rest_route=\/wp\/v2\/posts\/66\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.ffteixeira.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=66"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ffteixeira.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=66"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ffteixeira.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}