php - SilverStripe data not showing in the template -


i tried can not output existing data in database server.

page.ss (layout directory)

<div class="content-container unit size3of4 lastunit">     <article>         <div>             <% loop $latestmydata %>               $data1             <% end_loop %>         </div>         <div class="content">$content</div>     </article>     $form     $commentsform </div> 

mydata.php (mysite/code directory)

class mydata extends dataobject {      private static $db = array(         'data1' => 'varchar(30)'     ); }  class mydata_controller extends controller {     public function latestmydata($count = 1) {         return mydata::get()             ->limit($count);     }    } 

i tried build database /dev/build , flush cache ?flush=all still no output. know wrong?

the latestmydata function should in page_controller instead of mydata_controller controller page template call.

the mydata object needs controlled in cms in way. can done either through modeladmin or gridfield relationship page.

here working example showing 1 way using 1 many relationship between page , dataitem:

dataitem.php

class dataitem extends dataobject {     private static $db = array(         'title' => 'varchar(30)'     );     private static $has_one = array(         'page' => 'page'     ); } 

page.php

class page extends sitetree {     private static $has_many = array(         'dataitems' => 'dataitem'     );      public function getcmsfields()     {         $fields = parent::getcmsfields();          $dataitemsfield = gridfield::create(             'dataitems',             'data items',             $this->dataitems(),             gridfieldconfig_recordeditor::create()         );         $fields->addfieldtotab('root.dataitems', $dataitemsfield);          return $fields;     }  }  class page_controller extends contentcontroller {     function latestdataitems($limit = 1) {         return $this->dataitems()->limit($limit);     } } 

templates/layout/page.ss

<div class="content-container unit size3of4 lastunit">     <article>         <div>         <% loop $latestdataitems %>             $title         <% end_loop %>         </div>         <div class="content">$content</div>     </article>     $form     $commentsform </div> 

if want first dataitem object can can call $dataitems.first instead of our latestdataitems function:

templates/layout/page.ss

<div class="content-container unit size3of4 lastunit">     <article>         <% if $dataitems.first %>         <% $dataitems.first %>         <div>             $title         </div>         <% end_with %>         <% end_if %>         <div class="content">$content</div>     </article>     $form     $commentsform </div> 

Comments

Popular posts from this blog

java - nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet Hibernate+SpringMVC -

sql - Postgresql tables exists, but getting "relation does not exist" when querying -

asp.net mvc - breakpoint on javascript in CSHTML? -