¡¤ÄúÏÖÔÚµÄλÖ㺠ÔÆÒíÍøÂç >> ÎÄÕÂÖÐÐÄ >> ÍøÕ¾½¨Éè >> ÍøÕ¾½¨É迪·¢ >> phpÍøÕ¾¿ª·¢ >> [PHP]Yii2¿ò¼ÜµÄ¿Ó
ժҪ��Yii2��һ�������ͨ��Web��˿�ܣ��ṹ�����š�ʵ�ù��ܷḻ����չ��ǿ�����ܸ�������ͻ�����ŵ㡣������ĵط�����ʹ�ù������������׵ķ��֣�����׸��������Щ���ε�С覴ã��Եø��б�Ҫ���ߴ�ҡ�
�����ϴ�д���ͣ��Ѿ����������ˡ��ڶ���д֮ǰ�����Ǵ�����������С�������ĥ���ã����ڣ����ǣ������ˡ�
ֵ����ף��һ�����������ʼ��ÿ������8��30���������ˡ���������Ƶ�ܺ��ã�ֻ��8���ӣ�������һ�鱣֤�㣨����ˬ�����������磩������������8���Ӹ���������2��-���أ�8�����ؼ�������2��-���أ�
ֵ�÷�˼��һ������������ˡ��屾����ѧ��ʡ����ı�����һֱ�������Ķ��Ŀ�������������Ϊ�Ķ��ǽ�����Դ������ȴ���Ȿ������Ĵ����ˡ������ȸ���ҷ���һ�Σ�
����ֻ�����������ڻ����������Ķ�����������ij��ȷ���ļ���ǿ�Ӹ����ǵ�ͷ�ԣ���ֻ��Ϊ�����ṩ���زĺͻ��ᡣȥ˼�������ǵ�ͷ��������ơ��뵱�µ�������������顣���ԣ�̫����Ķ��������ǵľ���ʧȥ���ԣ������һ�������ѹ��һ����������ͻ��ǵ���ʧȥ����һ���������Լ�û���Լ�˼��������׵İ취�����ڿ��е�ÿһ����������������һ���顣
˼�����ǽ�����Դ������
���ˣ�������ϣ��������⡣
ActiveRecord
�Ļ����÷�����������⣬�ɲο����/** * @property integer $id * @property string $name * @property string $detail * @property double $price * @property integer $area **/ class OcRoom extends ActivieRecord { ... } $room = OcRoom::find() //��ȡ��һ������ ->select(['id']) //ֻȡ��'id'�� ->where(['id'=>20]) ->one(); $room->save(); //���棬�ᷢ�ִ��е������ֶζ���д��Ĭ��ֵ�ˡ�
������ӵ��������ڣ�
$room
������ֻȡ����id
�ֶΣ��������ֶ���Ȼ����Ĭ��ֵ��$room->save()
��ʱ����Щ��Ĭ��ֵ���ֶ�Ҳ�����浽���ݿ���ȥ�ˡ�what!?Ȼ����������ʲô����취�أ��ṩ����˼·��
ActiveRecord
�ı��档ActiveRecord
, ʹ�ã����˶�����find()
�½������ֶ�û����ȫȡ��������save()
�������׳��쳣��ActiveRecord
��ʹ�ã����˶�����find()
�½������ֶ�û����ȫȡ��������save()
����ʱ��ֻ����ȡ�������ֶΣ������ֶα����ԡ�/** * @property integer $id * @property string $name **/ class OcRoom extends ActiveRecord { public function rules() { return [['name','string','min'=>2,'max'=>10]]; } ... } class OcHouse extends ActiveRecord { public function rules() { return [['name','string','max'=>10]]; } ... } $a = new OcRoom(); $a->name = ''; //nameΪ���ַ�����������rules()������ $b = new OcHouse(); $b->name = '�ҵķ���'; //name�Ϸ������Ա��档 $transaction = Yii::$app->db->beginTransaction(); try{ $a->save(); //name�ֶβ��Ϸ����޷���֤ͨ������validate()�׶��Ѿ�����false,����������ݿ�洢�IJ��裬����Ҳ�����׳��쳣�� $b->save(); //name�ֶκϷ��������������档 $transaction->commit(); //�ύ�󣬷���$a����ʧ�ܣ���$b����ɹ��� } catch (Exception $e) { Yii::error($e->getTraceAsString(),__METHOD__); $transaction->rollBack(); }
��δ�����������ڣ�
$transaction
�Ĵ��������DZ�֤�������ݿ�洢����Ҫôȫ�ɹ���Ҫôȫʧ�ܡ�transaction
��û�дﵽ������Ҫ��Ч����$a
��Ϊvalidate()
��û��������$transation->commit()
��ʱ�򲢲��ᱨ������$transation
���ڣ����е�save()
��Ҫ�ж��·���ֵ�����Ϊfalse
����ֱ���׳��쳣��
OcRenterBill extends ActiveRecord { public function rules() { return [ ['start_time','date','format'=>'Y-m-d'], ]; } } $a = new OcRenterBill(); $a = '2015-09-12'; $a->save(); //�ᱨ����˵��ʽ���ԡ�
���һ��ʼ��Yii��ܾͱ��������������ӡ��ӵ�������Mac�Ͽ���ʱ�����������ȫ�����Ĺ����������������ϻ�����Ubuntu���󣬾͵���������start_time��ʽ��Ч���Ĵ��󡣶��ο��ٷ��ĵ����������ָ�ʽ�������Ĺٷ��ĵ���
�������������Դ������������ij�php:Y-m-d
��������徻�ˡ����ԣ�����������������⣬�м��Ұɡ�