【问题标题】:Put data in the method (addItem) using foreach使用 foreach 将数据放入方法 (addItem)
【发布时间】:2020-05-16 14:28:50
【问题描述】:

我尝试了代码,但它显示 1 个值。我想使用 addItem 插入更多数据并将其显示在我的发票 pdf 上。我可以使用 eloquent 获取所有数据,但不知道如何插入给定的类。

    public function invoice($id)
    {
        $motorcycle_service = MotorcycleService::findOrFail($id);

        foreach ($motorcycle_service->items as $item){

            $invoice = \ConsoleTVs\Invoices\Classes\Invoice::make()
                ->addItem($item->item->name, $item->item->price, $item->quantity, $item->id)
                ->number($motorcycle_service->id)
                ->with_pagination(true)
                ->duplicate_header(true)
                ->date(Carbon::parse($motorcycle_service->created_date))
                ->notes('Expected date and time to complete: ' . Carbon::createFromFormat('Y-m-d H:i:s', $motorcycle_service->expected_date)->format('d/m/Y h:i a'))
                ->customer([
                    'name'      => $motorcycle_service->motorcycle->customer->name,
                    'phone'     => $motorcycle_service->motorcycle->customer->phone_no,
                    'id'     => $motorcycle_service->motorcycle->customer->id,
                    'email' => $motorcycle_service->motorcycle->customer->email
                ])
                ->show($motorcycle_service->id);
        }

        return $invoice;
    }

https://github.com/ConsoleTVs/Invoices的示例代码

$invoice = \ConsoleTVs\Invoices\Classes\Invoice::make()
                ->addItem('Test Item', 10.25, 2, 1412)
                ->addItem('Test Item 2', 5, 2, 923)
                ->addItem('Test Item 3', 15.55, 5, 42)
                ->addItem('Test Item 4', 1.25, 1, 923)
                ->addItem('Test Item 5', 3.12, 1, 3142)
                ->addItem('Test Item 6', 6.41, 3, 452)
                ->addItem('Test Item 7', 2.86, 1, 1526)
                ->addItem('Test Item 8', 5, 2, 923, 'https://dummyimage.com/64x64/000/fff')
                ->number(4021)
                ->with_pagination(true)
                ->duplicate_header(true)
                ->due_date(Carbon::now()->addMonths(1))
                ->notes('Lrem ipsum dolor sit amet, consectetur adipiscing elit.')
                ->customer([
                    'name'      => 'Èrik Campobadal Forés',
                    'id'        => '12345678A',
                    'phone'     => '+34 123 456 789',
                    'location'  => 'C / Unknown Street 1st',
                    'zip'       => '08241',
                    'city'      => 'Manresa',
                    'country'   => 'Spain',
                ])
                ->download('demo');

【问题讨论】:

    标签: php laravel laravel-5 eloquent invoice


    【解决方案1】:

    创建 Invoice 的单个实例并用项目填充它。然后调用 ->show()... 不确定是不是你需要的 ->show() 方法,但你可以尝试一下。

    public function invoice($id)
        {
            $motorcycle_service = MotorcycleService::findOrFail($id);
            $invoice = \ConsoleTVs\Invoices\Classes\Invoice::make()
                    ->number($motorcycle_service->id)
                    ->with_pagination(true)
                    ->duplicate_header(true)
                    ->date(Carbon::parse($motorcycle_service->created_date))
                    ->notes('Expected date and time to complete: ' . Carbon::createFromFormat('Y-m-d H:i:s', $motorcycle_service->expected_date)->format('d/m/Y h:i a'))
                    ->customer([
                        'name'      => $motorcycle_service->motorcycle->customer->name,
                        'phone'     => $motorcycle_service->motorcycle->customer->phone_no,
                        'id'     => $motorcycle_service->motorcycle->customer->id,
                        'email' => $motorcycle_service->motorcycle->customer->email
                    ]);
    
            foreach ($motorcycle_service->items as $item){
                $invoice->addItem($item->item->name, $item->item->price, $item->quantity, $item->id)            
            }
    
            return $invoice->show($motorcycle_service->id);
        }
    

    【讨论】:

    • 它的作品!您只是错过了分号...谢谢。我从来没有考虑过这种方式来获取变量并再次重用它。再次感谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 2020-07-31
    • 1970-01-01
    相关资源
    最近更新 更多