Order.php 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. /**
  3. * FecShop file.
  4. *
  5. * @link http://www.fecshop.com/
  6. * @copyright Copyright (c) 2016 FecShop Software LLC
  7. * @license http://www.fecshop.com/license/
  8. */
  9. namespace fecshop\models\mysqldb;
  10. use yii\db\ActiveRecord;
  11. /**
  12. * @author Terry Zhao <2358269014@qq.com>
  13. * @since 1.0
  14. */
  15. class Order extends ActiveRecord
  16. {
  17. /**
  18. * @var 如果该值为true,则会干扰下面的rules()方法,让其返回没有rules限制
  19. * 可以通过下面的方法setGenerateOrderByPaypalToken() 来设置该值
  20. * 目前这个部分的设置主要用于paypal express 支付部分,也就是在购物车页面点击paypal
  21. * 先生成一个空的订单,里面只有order_id 和 token信息,当从paypal express跳转回网站后,
  22. * 在通过session获取到这个订单,然后更新这个订单。
  23. */
  24. protected $generate_order_by_paypal_token = false;
  25. public static function tableName()
  26. {
  27. return '{{%sales_flat_order}}';
  28. }
  29. public function setGenerateOrderByPaypalToken($status = true){
  30. $this->generate_order_by_paypal_token = $status;
  31. }
  32. public function rules()
  33. {
  34. if ($this->generate_order_by_paypal_token) {
  35. return [];
  36. }
  37. $rules = [
  38. ['customer_email', 'filter', 'filter' => 'trim'],
  39. ['customer_email', 'email'],
  40. ['customer_email', 'required'],
  41. ['customer_email', 'string', 'length' => [4, 90]],
  42. ['customer_firstname', 'filter', 'filter' => 'trim'],
  43. ['customer_firstname', 'required'],
  44. ['customer_firstname', 'string', 'length' => [1, 50]],
  45. ['customer_lastname', 'filter', 'filter' => 'trim'],
  46. //['customer_lastname', 'required'],
  47. ['customer_lastname', 'string', 'length' => [0, 50]],
  48. ['customer_telephone', 'filter', 'filter' => 'trim'],
  49. ['customer_telephone', 'required'],
  50. ['customer_telephone', 'string', 'length' => [1, 50]],
  51. ['customer_address_country', 'filter', 'filter' => 'trim'],
  52. ['customer_address_country', 'required'],
  53. ['customer_address_country', 'string', 'length' => [1, 50]],
  54. ['customer_address_state', 'filter', 'filter' => 'trim'],
  55. ['customer_address_state', 'required'],
  56. ['customer_address_state', 'string', 'length' => [1, 50]],
  57. ['customer_address_city', 'filter', 'filter' => 'trim'],
  58. ['customer_address_city', 'required'],
  59. ['customer_address_city', 'string', 'length' => [1, 50]],
  60. ['customer_address_zip', 'filter', 'filter' => 'trim'],
  61. ['customer_address_zip', 'required'],
  62. ['customer_address_zip', 'string', 'length' => [1, 20]],
  63. ['customer_address_street1', 'filter', 'filter' => 'trim'],
  64. ['customer_address_street1', 'required'],
  65. ['customer_address_street1', 'string', 'length' => [1, 500]],
  66. ['customer_address_street2', 'filter', 'filter' => 'trim'],
  67. ['customer_address_street2', 'string', 'length' => [1, 500]],
  68. ['order_remark', 'filter', 'filter' => 'trim'],
  69. ['order_remark', 'string', 'length' => [1, 1000]],
  70. ['coupon_code', 'filter', 'filter' => 'trim'],
  71. ['coupon_code','string','length' =>[1, 100]],
  72. ];
  73. return $rules;
  74. }
  75. }