¡¤ÄúÏÖÔÚµÄλÖ㺠ÔÆÒíÍøÂç >> ÎÄÕÂÖÐÐÄ >> ÍøÕ¾½¨Éè >> ÍøÕ¾½¨É迪·¢ >> phpÍøÕ¾¿ª·¢ >> [PHP]Yii2¿ò¼ÜµÄ¿Ó

[PHP]Yii2¿ò¼ÜµÄ¿Ó

×÷ÕߣºØýÃû      phpÍøÕ¾¿ª·¢±à¼­£ºadmin      ¸üÐÂʱ¼ä£º2022-07-23
[php]Yii2��ܵĿ�.md��/Users/zjh/Documents/�ҵ�����/[PHP]Yii2��ܵĿ�

Yii2��ܵļ������εĿ�


ժҪ��Yii2��һ�������ͨ��Web��˿�ܣ��ṹ�����š�ʵ�ù��ܷḻ����չ��ǿ�����ܸ�������ͻ�����ŵ㡣������ĵط�����ʹ�ù������������׵ķ��֣�����׸��������Щ���ε�С覴ã��Եø��б�Ҫ���ߴ�ҡ�


  • ����: http://www.cnblogs.com/jhzhu
  • ����: jhzhuustc@gmail.com
  • ����: ֪������
  • ʱ��: 2015-08-17

Ŀ¼

  • Yii2��ܵļ������εĿ�
    • Ŀ¼
    • ˵���л�
    • ActiveRecord��Ī��д�룿
      • ׼��֪ʶ
      • �����ֳ�
      • �ܽ�����
      • �������
    • ���Transaction������
      • �����ֳ�
      • �����ܽ�
      • �������
    • 'Y-m-d'����ʶ��
      • �����ֳ�
      • �����ܽ�

˵���л�

�����ϴ�д���ͣ��Ѿ����������ˡ��ڶ���д֮ǰ�����Ǵ�����������С�������ĥ���ã����ڣ����ǣ������ˡ�

ֵ����ף��һ�����������ʼ��ÿ������8��30���������ˡ���������Ƶ�ܺ��ã�ֻ��8���ӣ�������һ�鱣֤�㣨����ˬ�����������磩������������8���Ӹ���������2��-���أ�8�����ؼ�������2��-���أ�

ֵ�÷�˼��һ������������ˡ��屾����ѧ��ʡ����ı�����һֱ�������Ķ��Ŀ�������������Ϊ�Ķ��ǽ�����Դ������ȴ���Ȿ������Ĵ����ˡ������ȸ���ҷ���һ�Σ�

����ֻ�����������ڻ����������Ķ�����������ij��ȷ���ļ���ǿ�Ӹ����ǵ�ͷ�ԣ���ֻ��Ϊ�����ṩ���زĺͻ��ᡣȥ˼�������ǵ�ͷ��������ơ��뵱�µ�������������顣���ԣ�̫����Ķ��������ǵľ���ʧȥ���ԣ������һ�������ѹ��һ����������ͻ��ǵ���ʧȥ����һ���������Լ�û���Լ�˼��������׵İ취�����ڿ��е�ÿһ����������������һ���顣

˼�����ǽ�����Դ������

���ˣ�������ϣ��������⡣

ActiveRecord��Ī��д�룿

׼��֪ʶ

  1. 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();              //���棬�ᷢ�ִ��е������ֶζ���д��Ĭ��ֵ�ˡ�

�ܽ�����

������ӵ��������ڣ�

  1. �Ҵ����ݿ���ȡ����һ�У�Ҳ���Ǵ����е�$room������ֻȡ����id�ֶΣ��������ֶ���Ȼ����Ĭ��ֵ��
  2. ����$room->save()��ʱ����Щ��Ĭ��ֵ���ֶ�Ҳ�����浽���ݿ���ȥ�ˡ�what!?
  3. Ҳ����˵���������Լ��Դ����ȡ�������ֶε�ʱ��һ��Ҫע�ⲻ�ܱ��棬���򣬺ܶ����ݻᱻĪ���޸�ΪĬ��ֵ��

�������

Ȼ����������ʲô����취�أ��ṩ����˼·��

  1. �Լ�ʱ��ע�⣬����δ��ȫȡ����ActiveRecord�ı��档
  2. �޸Ļ�̳�ActiveRecord, ʹ�ã����˶�����find()�½������ֶ�û����ȫȡ��������save()�������׳��쳣��
  3. �޸Ļ�̳�ActiveRecord��ʹ�ã����˶�����find()�½������ֶ�û����ȫȡ��������save()����ʱ��ֻ����ȡ�������ֶΣ������ֶα����ԡ�

���Transaction������

�����ֳ�

/**
 * @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();
}

�����ܽ�

��δ�����������ڣ�

  1. ���֪��$transaction�Ĵ��������DZ�֤�������ݿ�洢����Ҫôȫ�ɹ���Ҫôȫʧ�ܡ�
  2. ��Ȼ������������У�transaction��û�дﵽ������Ҫ��Ч����$a��Ϊvalidate()��û��������$transation->commit()��ʱ�򲢲��ᱨ����

�������

��$transation���ڣ����е�save()��Ҫ�ж��·���ֵ�����Ϊfalse����ֱ���׳��쳣��

'Y-m-d'����ʶ��

�����ֳ�

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��������徻�ˡ����ԣ�����������������⣬�м��Ұɡ�