Recent Posts
- (09/10) Fixing Warning: the ECDSA host key for 'github.com' differs from the key for the IP addressTAGS:Web Server Admin
 - (12/26) CakePHP 3 - Getting List of Column Definitions from a Table (like schema())TAGS:CakephpCake3
 - (09/14) Change Order of Loaded Behaviors in CakePHP 3TAGS:Cake3CakephpWeb ProgrammingPhp
 - (05/29) CakePHP 3 - Accept JSON Header Only Working When Debug FalseTAGS:Web ProgrammingCakephpCake3
 - (05/23) Remove All Events from Google Calendar (Reset Calendar)TAGS:Web ProgrammingPhp
 - (11/08) Google Tag Manager (GTM) Not Firing Default PageView EventTAGS:Web ProgrammingJavascriptGoogle Tag Manager
 - (10/13) In PHP, how do you get __toString() Magic Method Result without calling echo?TAGS:CakephpCake3Cakephp 13PhpWeb Programming
 - (11/14) Getting output from shell_exec() at all timesTAGS:Web ProgrammingWeb Server Admin
 
Subscribe to my feed
MainelyDesign.com Blog
CakePHP 3 - Getting List of Column Definitions from a Table (like schema())
Posted on 12/26/2018 at 02:48 pm by Kevin Wentworth
Viewed 14,424 times | 0 comments
You may come from a time when using $this->ModelName->schema() would give you the details of a table's column defintions. Not in CakePHP 3. I found this manual way of achieving the same thing:
- // insert into begin of the controller file
 - use Cake\Datasource\ConnectionManager;
 - $db = ConnectionManager::get('default');
 - // Create a schema collection.
 - $collection = $db->schemaCollection();
 - // Get a single table (instance of Schema\TableSchema)
 - $tableSchema = $collection->describe('articles');
 - //Get columns list from table
 - $columns = $tableSchema->columns();
 - //Empty array for fields
 - $fields = [];
 - //iterate columns
 - foreach ( $columns as $column ){
 - $fields[ $column ] = $tableSchema->column( $column );
 - }
 
Tags for CakePHP 3 - Getting List of Column Definitions from a Table (like schema())
Comments for this Posting
No comments. Be the first to post a reply.
Sorry, comments are closed for this posting.
Please Email Kevin if you have any questions. Thanks!
