mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2025-01-31 00:48:25 +00:00
[1159]
Author: phpnut Date: 1:39:26 PM, Saturday, October 22, 2005 Message: Just about done with refactoring the model class. This should be tested to make sure all changes are working as expected. [1158] Author: phpnut Date: 5:34:41 AM, Saturday, October 22, 2005 Message: More work on associations. Adding fields setting, order by and conditions to hasMany and hasAndBelongsToMany [1157] Author: phpnut Date: 3:39:13 AM, Saturday, October 22, 2005 Message: More cleanup in Model class. [1156] Author: phpnut Date: 2:43:38 AM, Saturday, October 22, 2005 Message: Removing duplicate code the the associations. Added Model::_associationSwitch(); to move all association settings to one location and remove duplicate code. [1155] Author: phpnut Date: 1:52:47 AM, Saturday, October 22, 2005 Message: More cleaning up of the model class [1154] Author: phpnut Date: 1:40:34 AM, Saturday, October 22, 2005 Message: Cleaning up code layout [1153] Author: phpnut Date: 1:32:05 AM, Saturday, October 22, 2005 Message: removing temp variables and extra calls to Inflector::underscore(); [1152] Author: phpnut Date: 1:22:58 AM, Saturday, October 22, 2005 Message: More work on associations. Removing code that is no longer needed. [1151] Author: phpnut Date: 12:02:43 AM, Saturday, October 22, 2005 Message: more work on associations [1150] Author: phpnut Date: 6:25:45 PM, Friday, October 21, 2005 Message: more refactoring of associations [1149] Author: phpnut Date: 6:04:18 PM, Friday, October 21, 2005 Message: refactoring model and adding more association code [1145] Author: phpnut Date: 2:43:05 PM, Thursday, October 20, 2005 Message: more refactoring on associations [1143] Author: phpnut Date: 1:44:42 PM, Thursday, October 20, 2005 Message: Refactoring associations code. Starting work allowing full use of associations array settings git-svn-id: https://svn.cakephp.org/repo/trunk/cake@1160 3807eeeb-6ff5-0310-8944-8be069107fe0
This commit is contained in:
parent
6baaa1120f
commit
2bb31637cf
5 changed files with 828 additions and 1009 deletions
|
@ -593,12 +593,14 @@ class Controller extends Object
|
|||
$fieldNames = array();
|
||||
|
||||
// figure out what model and table we are working with
|
||||
$model = Inflector::pluralize($this->name);
|
||||
$table = Inflector::underscore(Inflector::singularize($this->name));
|
||||
$model = Inflector::underscore(Inflector::singularize($this->name));
|
||||
$table = $this->models[$model]->table;
|
||||
|
||||
|
||||
// get all of the column names.
|
||||
$classRegistry =& ClassRegistry::getInstance();
|
||||
$objRegistryModel = $classRegistry->getObject(Inflector::singularize($model));
|
||||
$objRegistryModel = $classRegistry->getObject($model);
|
||||
|
||||
|
||||
foreach ($objRegistryModel->_tableInfo as $tables)
|
||||
{
|
||||
|
@ -610,8 +612,9 @@ class Controller extends Object
|
|||
$niceName = substr( $tabl['name'], 0, strpos( $tabl['name'], "_id" ) );
|
||||
$fieldNames[ $tabl['name'] ]['prompt'] = Inflector::humanize($niceName);
|
||||
// this is a foreign key, also set up the other controller
|
||||
$fieldNames[ $tabl['name'] ]['model'] = Inflector::singularize($niceName);
|
||||
$fieldNames[ $tabl['name'] ]['controller'] = Inflector::pluralize($niceName);
|
||||
$fieldNames[ $tabl['name'] ]['table'] = Inflector::pluralize($niceName);
|
||||
$fieldNames[ $tabl['name'] ]['model'] = $this->models[$model]->tableToModel[$fieldNames[ $tabl['name'] ]['table']];
|
||||
$fieldNames[ $tabl['name'] ]['controller'] = Inflector::pluralize($this->models[$model]->tableToModel[Inflector::pluralize($niceName)]);
|
||||
$fieldNames[ $tabl['name'] ]['foreignKey'] = true;
|
||||
}
|
||||
else if( 'created' != $tabl['name'] && 'updated' != $tabl['name'] )
|
||||
|
@ -629,7 +632,7 @@ class Controller extends Object
|
|||
|
||||
// Now, set up some other attributes that will be useful for auto generating a form.
|
||||
//tagName is in the format table/field "post/title"
|
||||
$fieldNames[ $tabl['name']]['tagName'] = $table.'/'.$tabl['name'];
|
||||
$fieldNames[ $tabl['name']]['tagName'] = $model.'/'.$tabl['name'];
|
||||
|
||||
// Now, find out if this is a required field.
|
||||
//$validationFields = $classRegistry->getObject($table)->validate;
|
||||
|
@ -676,7 +679,7 @@ class Controller extends Object
|
|||
|
||||
// get the list of options from the other model.
|
||||
$registry =& ClassRegistry::getInstance();
|
||||
$otherModel = $registry->getObject($fieldNames[ $tabl['name']]['model']);
|
||||
$otherModel =& $registry->getObject($fieldNames[ $tabl['name']]['model']);
|
||||
|
||||
if( is_object($otherModel) )
|
||||
{
|
||||
|
@ -738,7 +741,7 @@ class Controller extends Object
|
|||
|
||||
// get the list of options from the other model.
|
||||
$registry =& ClassRegistry::getInstance();
|
||||
$otherModel = $registry->getObject($fieldNames[ $tabl['name']]['model']);
|
||||
$otherModel =& $registry->getObject($fieldNames[ $tabl['name']]['model']);
|
||||
|
||||
if( is_object($otherModel) )
|
||||
{
|
||||
|
@ -756,7 +759,7 @@ class Controller extends Object
|
|||
}
|
||||
}
|
||||
}
|
||||
$fieldNames[ $tabl['name']]['selected'] = $data[$table][$tabl['name']];
|
||||
$fieldNames[ $tabl['name']]['selected'] = $data[$model][$tabl['name']];
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
|
||||
echo $html->formTag('/'.Inflector::underscore($this->name).'/update');
|
||||
|
||||
|
||||
echo $form->generateFields( $fieldNames );
|
||||
|
||||
echo $form->generateSubmitDiv( 'Save' )
|
||||
|
|
|
@ -68,11 +68,11 @@
|
|||
$otherModelName = $value['model'];
|
||||
$otherControllerName = $value['controller'];
|
||||
|
||||
$registry = ClassRegistry::getInstance();
|
||||
$otherModelObject = $registry->getObject( $otherModelName );
|
||||
$registry =& ClassRegistry::getInstance();
|
||||
$otherModelObject =& $registry->getObject( $otherModelName );
|
||||
if( is_object($otherModelObject) )
|
||||
{
|
||||
$displayText = $row[$otherModelName][ $otherModelObject->getDisplayField() ];
|
||||
$displayText = $row[$value['model']][ $otherModelObject->getDisplayField() ];
|
||||
} else{
|
||||
$displayText = $row[$modelKey][$field];
|
||||
}
|
||||
|
|
|
@ -34,20 +34,24 @@
|
|||
<?php
|
||||
$modelName = Inflector::singularize($this->name);
|
||||
$modelKey = Inflector::underscore($modelName);
|
||||
$registry = ClassRegistry::getInstance();
|
||||
$registry =& ClassRegistry::getInstance();
|
||||
$objModel = $registry->getObject($modelName);
|
||||
|
||||
?>
|
||||
<dl>
|
||||
<?php foreach( $fieldNames as $field=>$value ) {
|
||||
echo "<dt>".$value['prompt']."</dt>";
|
||||
if( isset( $value['foreignKey'] ) ) {
|
||||
$otherModelObject = $registry->getObject($value['model']);
|
||||
$displayField = $otherModelObject->getDisplayField();
|
||||
$displayText = $data[$value['model']][ $displayField ];
|
||||
|
||||
if( !empty($data[$modelKey][$field]))
|
||||
<?php foreach($fieldNames as $field => $value)
|
||||
{
|
||||
echo "<dd>".$html->linkTo($displayText, '/'.Inflector::underscore($value['controller']).'/show/'.$data[$modelKey][ $field ] )."</dd>";
|
||||
echo "<dt>".$value['prompt']."</dt>";
|
||||
if(isset($value['foreignKey']))
|
||||
{
|
||||
$otherModelObject = $registry->getObject($objModel->tableToModel[$value['table']]);
|
||||
$displayField = $otherModelObject->getDisplayField();
|
||||
$displayText = $data[$objModel->tableToModel[$value['table']]][$displayField];
|
||||
|
||||
if(!empty($data[$objModel->tableToModel[$objModel->table]][$field]))
|
||||
{
|
||||
echo "<dd>".$html->linkTo($displayText, '/'.Inflector::underscore($value['controller']).'/show/'
|
||||
.$data[$objModel->tableToModel[$objModel->table]][$field] )."</dd>";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -57,28 +61,28 @@
|
|||
else
|
||||
{
|
||||
// this is just a plain old field.
|
||||
if( !empty($data[$modelKey][$field]))
|
||||
if( !empty($data[$objModel->tableToModel[$objModel->table]][$field]))
|
||||
{
|
||||
echo "<dd>".$data[$modelKey][$field]."</dd>";
|
||||
echo "<dd>".$data[$objModel->tableToModel[$objModel->table]][$field]."</dd>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<dd> </dd>";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
</dl>
|
||||
<ul class='actions'>
|
||||
<?php
|
||||
echo "<li>".$html->linkTo('Edit '.Inflector::humanize($modelKey), '/'.$this->viewPath.'/edit/'.$data[$modelKey]['id'])."</li>";
|
||||
echo "<li>".$html->linkTo('Delete '.Inflector::humanize($modelKey), '/'.$this->viewPath.'/destroy/'.$data[$modelKey]['id'])."</li>";
|
||||
echo "<li>".$html->linkTo('Edit '.Inflector::humanize($objModel->name), '/'.$this->viewPath.'/edit/'.$data[$objModel->tableToModel[$objModel->table]]['id'])."</li>";
|
||||
echo "<li>".$html->linkTo('Delete '.Inflector::humanize($objModel->name), '/'.$this->viewPath.'/destroy/'.$data[$objModel->tableToModel[$objModel->table]]['id'])."</li>";
|
||||
|
||||
foreach( $fieldNames as $field=>$value ) {
|
||||
foreach( $fieldNames as $field => $value ) {
|
||||
if( isset( $value['foreignKey'] ) )
|
||||
{
|
||||
echo "<li>".$html->linkTo( "View ".Inflector::humanize($value['controller']), "/".Inflector::underscore($value['controller'])."/show/".$data[Inflector::singularize($params['controller'])][$field] )."</li>";
|
||||
echo "<li>".$html->linkTo( "View ".Inflector::humanize($value['controller']), "/".Inflector::underscore($value['controller'])."/show/".$data[$objModel->tableToModel[$value['table']]]['id'] )."</li>";
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -86,12 +90,10 @@
|
|||
|
||||
<!--hasOne relationships -->
|
||||
<?php
|
||||
$objModel = $registry->getObject($modelName);
|
||||
|
||||
foreach ($objModel->_oneToOne as $relation)
|
||||
{
|
||||
list($table, $field, $value) = $relation;
|
||||
$otherModelName = Inflector::singularize($table);
|
||||
$otherModelName = $objModel->tableToModel[$table];
|
||||
|
||||
echo "<div class='related'><H2>Related ".Inflector::humanize($otherModelName)."</H2><br/><br/>";
|
||||
echo "<dl>";
|
||||
|
@ -129,12 +131,13 @@
|
|||
|
||||
foreach( $relations as $relation )
|
||||
{
|
||||
list($table, $field, $value) = $relation;
|
||||
list($model, $value) = $relation;
|
||||
$count = 0;
|
||||
$otherModelName = Inflector::singularize($table);
|
||||
$otherModelName = Inflector::singularize($model);
|
||||
$controller = Inflector::pluralize($model);
|
||||
|
||||
echo "<div class='related'><H2>Related ".Inflector::humanize($table)."</H2><br/><br/>";
|
||||
if( isset($data[$table]) && is_array($data[$table]) )
|
||||
echo "<div class='related'><H2>Related ".Inflector::humanize($objModel->tableToModel[$objModel->{$model}->table])."</H2><br/><br/>";
|
||||
if( isset($data[$objModel->tableToModel[$objModel->{$model}->table]]) && is_array($data[$objModel->tableToModel[$objModel->{$model}->table]]) )
|
||||
{
|
||||
?>
|
||||
|
||||
|
@ -143,7 +146,7 @@
|
|||
<?php // Loop through and create the header row.
|
||||
// find a row that matches this title.
|
||||
$bFound = false;
|
||||
foreach( $data[$table][0] as $column=>$value ) {
|
||||
foreach( $data[$objModel->tableToModel[$objModel->{$model}->table]][0] as $column=>$value ) {
|
||||
echo "<th>".Inflector::humanize($column)."</th>";
|
||||
}
|
||||
?>
|
||||
|
@ -151,7 +154,7 @@
|
|||
</tr>
|
||||
<?php
|
||||
// now find all matching rows
|
||||
foreach( $data[$table] as $row )
|
||||
foreach( $data[$objModel->tableToModel[$objModel->$model->table]] as $row )
|
||||
{
|
||||
echo "<tr>";
|
||||
foreach( $row as $column=>$value )
|
||||
|
@ -159,9 +162,9 @@
|
|||
echo "<td>".$value."</td>";
|
||||
}
|
||||
?>
|
||||
<td class="listactions"><?php echo $html->linkTo('View',"/".Inflector::underscore($table)."/show/{$row['id']}/")?>
|
||||
<?php echo $html->linkTo('Edit',"/".Inflector::underscore($table)."/edit/{$row['id']}/")?>
|
||||
<?php echo $html->linkTo('Delete',"/".Inflector::underscore($table)."/destroy/{$row['id']}/")?>
|
||||
<td class="listactions"><?php echo $html->linkTo('View',"/".Inflector::underscore($controller)."/show/{$row['id']}/")?>
|
||||
<?php echo $html->linkTo('Edit',"/".Inflector::underscore($controller)."/edit/{$row['id']}/")?>
|
||||
<?php echo $html->linkTo('Delete',"/".Inflector::underscore($controller)."/destroy/{$row['id']}/")?>
|
||||
</td>
|
||||
<?php
|
||||
echo "</tr>";
|
||||
|
@ -174,7 +177,7 @@
|
|||
<?php
|
||||
// add a link to create a new relation.
|
||||
|
||||
echo "<li>".$html->linkTo('New '.Inflector::humanize($otherModelName),"/".Inflector::underscore($table)."/new/")."</li>";
|
||||
echo "<li>".$html->linkTo('New '.Inflector::humanize($otherModelName),"/".Inflector::underscore($controller)."/new/")."</li>";
|
||||
// echo "<li>".$html->linkTo( "View ".Inflector::humanize($table), "/".Inflector::underscore($table)."/list/".$modelName."/".$data[$modelName]['id'])."</li>";
|
||||
?>
|
||||
</ul></div>
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue