roots() 공개 정적인 메소드

Static query scope. Returns a query scope with all root nodes.
public static roots ( ) : Builder
리턴 Illuminate\Database\Query\Builder
예제 #1
0
 /**
  * Show the Dashboard.
  *
  * @return Response
  */
 public function getIndex()
 {
     $id = \Input::get('id') ?: null;
     $name = \Input::get('column_name') ? explode(',', \Input::get('column_name')) : null;
     $tableName = \Input::get('table_name') ?: null;
     $moduleName = \Input::get('name') ?: null;
     $output = array();
     // Instantiate model
     $modelName = studly_case(str_singular($tableName));
     $model = '\\Orangehill\\Photon\\' . $modelName;
     if (!class_exists($model)) {
         $model = '\\' . $modelName;
     }
     $this->modelInstance = new $model();
     if (is_null($id)) {
         // Get roots
         $entries = $this->modelInstance->roots()->get();
     } else {
         // Get parent by id
         $parent = $this->modelInstance->find($id);
         // Get children
         $entries = $parent->children()->get();
     }
     foreach ($entries as $entry) {
         $node = array();
         // Check if entry name is from one to many relation
         //            $entry->$name = $this->checkOneToManyRelation($name, $entry);
         if ($name === null) {
             $entryName = (string) $entry;
         } else {
             $entryNameElements = array();
             array_walk($name, function ($value) use(&$entry, &$entryNameElements) {
                 $entryNameElements[] = $entry->{$value};
             });
             $entryName = join(' ', $entryNameElements);
         }
         $node['data'] = array('title' => $entryName, 'attr' => array('href' => '/admin/' . $moduleName . '/' . $entry->id));
         $node['attr'] = array('data-module-name' => $moduleName, 'id' => $moduleName . '_' . $entry->id);
         if (count($entry->children()->get())) {
             $node['state'] = 'closed';
         }
         $output[] = $node;
     }
     return \Response::json($output);
 }