PageRenderTime 55ms CodeModel.GetById 27ms RepoModel.GetById 1ms app.codeStats 0ms

/Yii_notes.php

https://github.com/keikei/Hello
PHP | 243 lines | 189 code | 29 blank | 25 comment | 7 complexity | 3226ff466bae47fa82224a9f175df812 MD5 | raw file
  1. /* test log
  2. $dbuser = "root";
  3. $dbpasswd = "31138815";
  4. $sql = "INSERT INTO studio.log (content) VALUES ('auto');";
  5. $conn = mysql_connect('localhost', $dbuser, $dbpasswd);
  6. mysql_select_db('studio', $conn);
  7. mysql_query($sql) or die(mysql_error());
  8. */
  9. Yii technique
  10. ~~~~//_view.php
  11. <b><?php echo CHtml::encode($data->getAttributeLabel('student_id')); ?>:</b>
  12. <?php echo CHtml::link(CHtml::encode($data->student_id), array('view', 'id'=>$data->student_id)); ?>
  13. <br />
  14. <b><?php echo CHtml::encode($data->getAttributeLabel('nickname')); ?>:</b>
  15. <?php echo CHtml::encode($data->nickname); ?>
  16. <br />
  17. <b><?php echo CHtml::encode('Full Name'); ?>:</b>
  18. <?php echo CHtml::encode($data->last_name ." ". $data->first_name ." ". $data->chi_name); ?>
  19. <br />
  20. <b><?php echo CHtml::encode($data->getAttributeLabel('gender_id')); ?>:</b>
  21. <?php echo CHtml::encode($data->gender->en); ?>
  22. <br />
  23. ~~~~
  24. ~~~~~//form from relational table
  25. create.php
  26. <?php echo $this->renderPartial('_form', array(
  27. 'model'=>$model,
  28. 'guardian'=>$guardian,
  29. 'relationship'=>$relationship)); ?>
  30. Student.php
  31. search(){
  32. ...
  33. /*
  34. $criteria->with=array('grade');
  35. $criteria->together= true;
  36. $criteria->compare('grade.grade_name', $this->grade_id, true);
  37. */
  38. $criteria->join="LEFT JOIN grade gd ON t.grade_id = gd.grade_id ";
  39. ...
  40. }
  41. StudentController.php
  42. public function actionCreate()
  43. {
  44. $model=new Student;
  45. $guardian= new Guardian;
  46. $relationship = new Relationship;
  47. // Uncomment the following line if AJAX validation is needed
  48. // $this->performAjaxValidation($model);
  49. if(isset($_POST['Student']))
  50. {
  51. $model->attributes=$_POST['Student'];
  52. $valid=$model->validate();
  53. if($valid)
  54. {
  55. //only try validate if there is input of guardian name
  56. if(($_POST['Guardian']['name'])!=NULL)
  57. {
  58. $guardian->attributes=$_POST['Guardian'];
  59. $relationship->attributes=$_POST['Relationship'];
  60. $valid_guardian=$guardian->validate() && $relationship->validate(array('relationship_type_id'));
  61. if($valid_guardian)
  62. {
  63. // use false parameter to disable validation
  64. $model->save(false);
  65. $guardian->save(false);
  66. $relationship->student_id=$model->primaryKey;
  67. $relationship->guardian_id=$guardian->primaryKey;
  68. $relationship->save(false);
  69. $this->redirect(array('view','id'=>$model->student_id));
  70. }
  71. } else {
  72. $model->save(false);
  73. $this->redirect(array('view','id'=>$model->student_id));
  74. }
  75. }
  76. }
  77. $this->render('create',array(
  78. 'model'=>$model,
  79. 'guardian'=>$guardian,
  80. 'relationship'=>$relationship,
  81. ));
  82. }
  83. ~~~~~~
  84. ~~~~~~//form input method
  85. _form.php
  86. <div class="row">
  87. <?php echo $form->labelEx($model,'gender_id'); ?>
  88. <? //php echo $form->textField($model,'gender_id'); ?>
  89. <?php echo $form->dropDownList($model, 'gender_id', CHtml::listData(Gender::model()->findAll(),'gender_id','abbr'), array('prompt'=>'- Choose -'));?>
  90. <?php echo $form->error($model,'gender_id'); ?>
  91. </div>
  92. <div class="row">
  93. <?php echo $form->labelEx($model,'school_id'); ?>
  94. <? //php echo $form->textField($model,'school_id'); ?>
  95. <?php echo $form->dropDownList($model, 'school_id', CHtml::listData(School::model()->findAll(),'school_id','school_eng_name'), array('prompt'=>'- Choose -'));?>
  96. <?php echo $form->error($model,'school_id'); ?>
  97. </div>
  98. <div class="row">
  99. <?php
  100. $sql = "SELECT teacher_id, concat(first_name, ' ', last_name) as callname FROM teacher";
  101. $cmd = Yii::app()->db->createCommand($sql);
  102. $res = $cmd->queryAll();
  103. ?>
  104. <?php echo $form->labelEx($model,'teacher_id'); ?>
  105. <?php echo $form->dropDownList($model,'teacher_id',
  106. CHtml::listData($res,'teacher_id','callname'), array('prompt'=>'- Choose -'));?>
  107. <?php echo $form->error($model,'teacher_id'); ?>
  108. </div>
  109. <div class="row">
  110. <?php echo $form->labelEx($model,'reg_date'); ?>
  111. <?php if($model->reg_date ==NULL){$model->reg_date=date("Y-m-d");} ?>
  112. <?php echo $form->textField($model,'reg_date'); ?>
  113. <?php echo $form->error($model,'reg_date'); ?>
  114. </div>
  115. <div class="row">
  116. <?php echo $form->labelEx($model,'number'); ?>
  117. <?php echo $form->textField($model,'number'); ?>
  118. <?php echo $form->error($model,'number'); ?>
  119. <?php $this->widget('zii.widgets.jui.CJuiSlider', array(
  120. 'value'=>50,
  121. 'options'=>array(
  122. 'min'=>0,
  123. 'max'=>100,
  124. 'slide'=>"js:function(event, ui) { $('#Lesson_number').val(ui.value);}"
  125. ),
  126. 'htmlOptions'=>array(
  127. 'style'=>'height:12px;'
  128. ),
  129. ));?>
  130. </div>
  131. <div class="row">
  132. <?php echo $form->labelEx($model,'grade_id'); ?>
  133. <?//php echo $form->textField($model,'grade_id'); ?>
  134. <?php echo $form->dropDownList($model, 'grade_id', CHtml::listData(
  135. Yii::app()->db->createCommand()
  136. ->select('grade_id, CONCAT(name, " ", grade_name) as name')
  137. ->from('grade g, edu_system edu')
  138. ->where('g.edu_system_id=edu.edu_system_id')
  139. ->queryAll(),'grade_id','name'), array('prompt'=>'- Choose -'));?>
  140. <?php echo $form->error($model,'grade_id'); ?>
  141. </div>
  142. <div class="row">
  143. <?php echo $form->labelEx($model,'birth_date', array('label'=>'Date of Birth')); ?>
  144. <?//php echo $form->textField($model,'birth_date'); ?>
  145. <?php
  146. $this->widget('zii.widgets.jui.CJuiDatePicker',
  147. array(
  148. 'model' => $model,
  149. 'attribute' => 'birth_date',
  150. 'options' => array(
  151. 'showAnim' => 'fold',
  152. 'dateFormat' => 'yy-mm-dd',
  153. 'defaultDate' => $model->birth_date,
  154. 'defaultDate' => '1990-01-01',
  155. 'changeYear' => true,
  156. 'changeMonth' => true,
  157. 'yearRange' => '1900',
  158. ),
  159. ));
  160. ?>
  161. <?php echo $form->error($model,'birth_date'); ?>
  162. </div>
  163. <div class="row">
  164. <?php echo $form->labelEx($guardian,'mobile'); ?>
  165. <?php echo $form->textField($guardian,'mobile'); ?>
  166. <?php echo $form->error($guardian,'mobile'); ?>
  167. </div>
  168. ~~~~~
  169. ~~~~~//CGrid View
  170. array(
  171. 'header'=>'School',
  172. 'name'=>'school_id',
  173. 'filter'=>CHtml::listData(School::model()->findAll(),'school_id','school_eng_name'),
  174. 'value'=>'$data->school->school_eng_name'
  175. ),
  176. //'grade_id',
  177. //'grade.grade_name',
  178. array(
  179. 'header'=>'Grade',
  180. 'name'=>'grade_id',
  181. 'type'=>'raw',
  182. 'value'=>'$data->grade->grade_name',
  183. ),
  184. 'mobile',
  185. 'home_phone',
  186. /*
  187. array(
  188. 'type'=>'raw',
  189. 'value'=>'CHtml::link($data->school->school_eng_name, array("school/update", "id"=>$data->school->school_id));',
  190. 'name'=>'school.school_eng_name',
  191. ),*/
  192. ~~~~
  193. ~~~~//CDetailView
  194. 'attributes'=>array(
  195. 'student_id',
  196. array(
  197. 'header'=>'Gender',
  198. 'name'=>'gender_id',
  199. 'value'=>CHtml::encode($model->gender->en)
  200. ),
  201. array(
  202. 'header'=>'School',
  203. 'name'=>'school_id',
  204. 'value'=>CHtml::encode($model->school->school_eng_name)
  205. ),
  206. array(
  207. 'header'=>'Grade',
  208. 'name'=>'grade_id',
  209. 'value'=>CHtml::encode($model->grade->grade_name)
  210. ),
  211. 'home_address',
  212. 'remarks',
  213. ),
  214. ~~~~~~