覆盖/扩展模型

时间:2020-01-24 09:09:39

标签: laravel

我使用软件包“ laravel / cashier-mollie”,该软件包通过composer安装到供应商目录中,并具有以下模型:\ Laravel \ Cashier \ Order \ OrderNumberGenerator

我想重写此模型以实现自己的订单号逻辑。

我创建了一个新模型:

<?php

namespace App\Payments;

use Laravel\Cashier\Order\Order;
use Laravel\Cashier\Order\OrderNumberGenerator;

class OwnOrderNumberGenerator extends OrderNumberGenerator
{


    protected $offset;
    /**
     * OrderNumberGenerator constructor.
     */
    public function __construct()
    {
        $this->offset = config('cashier.order_number_generator.offset');
    }
    /**
     * Generate an order reference.
     *
     * @return string
     */

    public function generate()
    {
        $number = str_pad(
            $this->offset + Order::count() + 1,
            4,
            '0',
            STR_PAD_LEFT
        );
        $numbers = str_split($number, 4);
        return now()->month .'-'. now()->year . ' '. implode('-',[
            now()->year,
            $numbers[0],
            $numbers[1],
        ]);
    }
}

也许我做错了什么,但是它不起作用。我怎么办?

1 个答案:

答案 0 :(得分:0)

请从模型扩展中删除构造函数,并改用trait。在特征内有一个名为public function initializeYourTraitName() { $this->offset = config('cashier.order_number_generator.offset'); }

的函数