Exemple #1
0
 /**
  * Sets specified fields for foreign key values.
  * 
  * @param \Rougin\Describe\Column $column
  */
 public function setForeignKey(Column $column, array &$data, array &$keywords)
 {
     if (!$column->isForeignKey()) {
         return;
     }
     $config = Configuration::get();
     $template = $this->foreignColumnTemplate;
     $data['methods'] .= "\n    " . $this->mutatorMethodTemplate . "\n    ";
     $data['methods'] .= $this->accessorMethodTemplate;
     $referencedTable = $this->stripTableSchema($column->getReferencedTable());
     $keywords['{accessorName}'] = Inflector::camelize('get_' . $referencedTable);
     $keywords['{mutatorName}'] = Inflector::camelize('set_' . $referencedTable);
     $keywords['{primaryKey}'] = $this->describe->getPrimaryKey($referencedTable);
     $keywords['{variable}'] = $referencedTable;
     $keywords['{referencedTable}'] = ucfirst($referencedTable);
     $keywords['{description}'] = $referencedTable;
     $keywords['{class}'] = ucfirst($referencedTable) . ' ';
     $keywords['{datatype}'] = '\\' . $config->application->name . '\\' . $config->namespaces->models . '\\' . ucfirst($referencedTable);
     $template = str_replace(array_keys($keywords), array_values($keywords), $template);
     $data['methods'] = str_replace(array_keys($keywords), array_values($keywords), $data['methods']);
     $data['columns'] .= $template;
 }