不能将 PayPal\Api\Amount 类型的对象用作数组

Cannot use object of type PayPal\Api\Amount as array

我有一个错误:“无法将类型 PayPal\Api\Amount 的对象用作数组 ”,我有点搞不懂首先要修复的是什么。以下是错误:

E:\laragon\www\thepaymentss\app\Http\Controllers\PaypalController.php

    if (empty(Input::get('PayerID')) || empty(Input::get('token'))) {
        \Session::put('error','Payment failed');
        return Redirect::route('paywithpaypal');
    }
    $payment = Payment::get($payment_id, $this->_api_context);
    /** PaymentExecution object includes information necessary **/
    /** to execute a PayPal account payment. **/
    /** The payer_id is added to the request query parameters **/
    /** when the user is redirected from paypal back to your site **/
    $execution = new PaymentExecution();
    $execution->setPayerId(Input::get('PayerID'));
    /**Execute the payment **/
    $result = $payment->execute($execution, $this->_api_context);
    /** dd($result);exit; /** DEBUG RESULT, remove it later **/
    if ($result->getState() == 'approved') { 
        // dd($result);

        $transactions=new Transactions();
        // $transactions->id=$result->id;
        $transactions->amount=$result->transactions[0]->amount[0]->total;
        $transactions->sender=$result->payer[0]->payer_info[0]->email;
        $transactions->type=$result->payer[0]->payment_method;
        $transactions->currency=$result->transactions[0]->amount[0]->currency;
        $transactions->description=$result->transactions[0]->description;
        $transactions->fee='0';
        $transactions->client_id=1;
        $transactions->status=$result->state;
        $transactions->receiver=$result->transactions[0]->payee[0]->email;

        $transactions->Save();



        /** it's all right **/
        /** Here Write your database logic like that insert record or value in database if you want **/

        \Session::put('success','Payment success');
        return Redirect::route('paywithpaypal');
    }
        \Session::put('error','Payment failed');

错误“无法将类型 PayPal\Api\Amount 的对象用作数组”在第

$transactions->amount=$result->transactions[0]->amount[0]->total;

这是Paypal/Api/Amount的代码:

    <?php

namespace PayPal\Api;

use PayPal\Common\PayPalModel;
use PayPal\Converter\FormatConverter;
use PayPal\Validation\NumericValidator;

/**
 * Class Amount
 *
 * payment amount with break-ups.
 *
 * @package PayPal\Api
 *
 * @property string currency
 * @property string total
 * @property \PayPal\Api\Details details
 */
class Amount extends PayPalModel
{
    /**
     * 3-letter [currency code](https://developer.paypal.com/docs/integration/direct/rest_api_payment_country_currency_support/). PayPal does not support all currencies.
     *
     * @param string $currency
     * 
     * @return $this
     */
    public function setCurrency($currency)
    {
        $this->currency = $currency;
        return $this;
    }

    /**
     * 3-letter [currency code](https://developer.paypal.com/docs/integration/direct/rest_api_payment_country_currency_support/). PayPal does not support all currencies.
     *
     * @return string
     */
    public function getCurrency()
    {
        return $this->currency;
    }

    /**
     * Total amount charged from the payer to the payee. In case of a refund, this is the refunded amount to the original payer from the payee. 10 characters max with support for 2 decimal places.
     *
     * @param string|double $total
     * 
     * @return $this
     */
    public function setTotal($total)
    {
        NumericValidator::validate($total, "Total");
        $total = FormatConverter::formatToPrice($total, $this->getCurrency());
        $this->total = $total;
        return $this;
    }

    /**
     * Total amount charged from the payer to the payee. In case of a refund, this is the refunded amount to the original payer from the payee. 10 characters max with support for 2 decimal places.
     *
     * @return string
     */
    public function getTotal()
    {
        return $this->total;
    }

    /**
     * Additional details of the payment amount.
     *
     * @param \PayPal\Api\Details $details
     * 
     * @return $this
     */
    public function setDetails($details)
    {
        $this->details = $details;
        return $this;
    }

    /**
     * Additional details of the payment amount.
     *
     * @return \PayPal\Api\Details
     */
    public function getDetails()
    {
        return $this->details;
    }

}

有人可以解释并帮助我解释为什么它不起作用吗?

$transactions->amount=$result->transactions[0]->amount[0]->total;

如错误消息所述,您不能将该“金额”用作数组。它不是一个数组,它是一个对象。所以:

$transactions->amount=$result->transactions[0]->amount->total;