mirror of
https://github.com/yiisoft/yii.git
synced 2026-03-07 00:26:52 +01:00
94 lines
3.6 KiB
PHP
94 lines
3.6 KiB
PHP
<?php
|
|
$class=get_class($model);
|
|
Yii::app()->clientScript->registerScript('gii.model',"
|
|
$('#{$class}_modelClass').change(function(){
|
|
$(this).data('changed',$(this).val()!='');
|
|
});
|
|
$('#{$class}_tableName').bind('keyup change', function(){
|
|
var model=$('#{$class}_modelClass');
|
|
var tableName=$(this).val();
|
|
if(tableName.substring(tableName.length-1)!='*') {
|
|
$('.form .row.model-class').show();
|
|
}
|
|
else {
|
|
$('#{$class}_modelClass').val('');
|
|
$('.form .row.model-class').hide();
|
|
}
|
|
if(!model.data('changed')) {
|
|
var i=tableName.lastIndexOf('.');
|
|
if(i>=0)
|
|
tableName=tableName.substring(i+1);
|
|
var tablePrefix=$('#{$class}_tablePrefix').val();
|
|
if(tablePrefix!='' && tableName.indexOf(tablePrefix)==0)
|
|
tableName=tableName.substring(tablePrefix.length);
|
|
var modelClass='';
|
|
$.each(tableName.split('_'), function() {
|
|
if(this.length>0)
|
|
modelClass+=this.substring(0,1).toUpperCase()+this.substring(1);
|
|
});
|
|
model.val(modelClass);
|
|
}
|
|
});
|
|
$('.form .row.model-class').toggle($('#{$class}_tableName').val().substring($('#{$class}_tableName').val().length-1)!='*');
|
|
");
|
|
?>
|
|
<h1>Model Generator</h1>
|
|
|
|
<p>This generator generates a model class for the specified database table.</p>
|
|
|
|
<?php $form=$this->beginWidget('CCodeForm', array('model'=>$model)); ?>
|
|
|
|
<div class="row sticky">
|
|
<?php echo $form->labelEx($model,'tablePrefix'); ?>
|
|
<?php echo $form->textField($model,'tablePrefix', array('size'=>65)); ?>
|
|
<div class="tooltip">
|
|
This refers to the prefix name that is shared by all database tables.
|
|
Setting this property mainly affects how model classes are named based on
|
|
the table names. For example, a table prefix <code>tbl_</code> with a table name <code>tbl_post</code>
|
|
will generate a model class named <code>Post</code>.
|
|
<br/>
|
|
Leave this field empty if your database tables do not use common prefix.
|
|
</div>
|
|
<?php echo $form->error($model,'tablePrefix'); ?>
|
|
</div>
|
|
<div class="row">
|
|
<?php echo $form->labelEx($model,'tableName'); ?>
|
|
<?php echo $form->textField($model,'tableName', array('size'=>65)); ?>
|
|
<div class="tooltip">
|
|
This refers to the table name that a new model class should be generated for
|
|
(e.g. <code>tbl_user</code>). It can contain schema name, if needed (e.g. <code>public.tbl_post</code>).
|
|
You may also enter <code>*</code> (or <code>schemaName.*</code> for a particular DB schema)
|
|
to generate a model class for EVERY table.
|
|
</div>
|
|
<?php echo $form->error($model,'tableName'); ?>
|
|
</div>
|
|
<div class="row model-class">
|
|
<?php echo $form->label($model,'modelClass',array('required'=>true)); ?>
|
|
<?php echo $form->textField($model,'modelClass', array('size'=>65)); ?>
|
|
<div class="tooltip">
|
|
This is the name of the model class to be generated (e.g. <code>Post</code>, <code>Comment</code>).
|
|
It is case-sensitive.
|
|
</div>
|
|
<?php echo $form->error($model,'modelClass'); ?>
|
|
</div>
|
|
<div class="row sticky">
|
|
<?php echo $form->labelEx($model,'baseClass'); ?>
|
|
<?php echo $form->textField($model,'baseClass',array('size'=>65)); ?>
|
|
<div class="tooltip">
|
|
This is the class that the new model class will extend from.
|
|
Please make sure the class exists and can be autoloaded.
|
|
</div>
|
|
<?php echo $form->error($model,'baseClass'); ?>
|
|
</div>
|
|
<div class="row sticky">
|
|
<?php echo $form->labelEx($model,'modelPath'); ?>
|
|
<?php echo $form->textField($model,'modelPath', array('size'=>65)); ?>
|
|
<div class="tooltip">
|
|
This refers to the directory that the new model class file should be generated under.
|
|
It should be specified in the form of a path alias, for example, <code>application.models</code>.
|
|
</div>
|
|
<?php echo $form->error($model,'modelPath'); ?>
|
|
</div>
|
|
|
|
<?php $this->endWidget(); ?>
|