【问题标题】:Laravel invoice errorLaravel 发票错误
【发布时间】:2016-02-13 08:59:27
【问题描述】:

使用 Laravel 5.2,我正在生成一个发票列表,可以使用以下代码正常工作:

$owner = User::where("accountId",Auth::user()
->accountId)
->where("owner",1)
->first();
$invoices = $owner->invoices();

但是当我尝试下载发票时

return $this->owner->downloadInvoice($id, [
    'vendor'  => 'XXXXXXX',
    'product' => 'XXXXXXX',
]);

我收到以下错误

0aba430056a58a8038d61445deab8578 第 133 行中的 FatalErrorException:调用 到未定义的方法 Laravel\Cashier\InvoiceItem::startDateString()

错误似乎来自收据模板中的这个块,但经过广泛的谷歌搜索后,我似乎找不到任何答案。

            <!-- Display The Subscriptions -->
            @foreach ($invoice->subscriptions() as $subscription)
                <tr>
                    <td>Subscription ({{ $subscription->quantity }})</td>
                    <td>{{ $subscription->startDateString() }} - {{ $subscription->endDateString() }}</td>
                    <td>{{ $subscription->dollars() }}</td>
                </tr>
            @endforeach

有什么想法吗?

【问题讨论】:

  • 该模型是否包含名为 startDateStringmethod
  • 不是我明确定义的,但是文档中没有关于需要设置这些方法的内容。我将创建自己的 startDateString/endDateString 方法并检查结果
  • 更新:我已经尝试添加一个 startDateString 方法,错误仍然存​​在

标签: php laravel laravel-5.2 laravel-cashier


【解决方案1】:

我相信发票模板来自旧版本的 Laravel。我已将模板更新为:

        @foreach ($invoice->subscriptions() as $subscription)
            <tr>
                <td>Subscription ({{ $subscription->quantity }})</td>
                <td>{{ $subscription->startDate() }} - {{ $subscription->endDate() }}</td>
                <td>{{ $subscription->total() }}</td>
            </tr>
        @endforeach

它似乎正在工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 2014-09-07
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多