如何从另一个控制器类获取值

问题描述 投票:0回答:1

我有两个控制器类AuthenticationControllerRegisterUrlController

我想在AuthenticationController类中调用一个名为authorization的函数来返回一个值,并使用RegisterUrlController类中的值和函数registerUrl作为CURLOPT_HTTPHEADER数组值的ACCESS_TOKEN变量。

参见示例代码;

<?php

namespace App\Http\Controllers\C2B;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;


class RegisterUrlController extends Controller
{

    public function registerUrl(Request $request)
    {

        $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $url);
        // The ACCESS_TOKEN should be passed from the other class 
            curl_setopt($curl, CURLOPT_HTTPHEADER, 
        array('Content-Type:application/json','Authorization:Bearer $ACCESS_TOKEN')
             ); 

            $curl_post_data = array(
              //Fill in the request parameters with valid values
              'ShortCode' => $request->ShortCode,
              'ResponseType' => 'ResponseType',
              'ConfirmationURL' => $request->confirmation_url,
              'ValidationURL' => $request->validation_url
            );

            $data_string = json_encode($curl_post_data);

            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_POST, true);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);

            $curl_response = curl_exec($curl);
            print_r($curl_response);

            echo $curl_response;


            curl_close($curl);

    }
}

上面生成ACCESS_TOKEN的类如下。

如何将此返回值作为上面数组头上的ACCESS_TOKEN值传递?

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class AuthenticationController extends Controller
{

    public function __construct()
    {
        $this->middleware('guest');
    }


    public function authorization()
    {

            $curl = curl_init();

            curl_setopt($curl, CURLOPT_URL, $url);

            $credentials = base64_encode('statum:ub435!');
            curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Basic '.$credentials)); //setting a custom header
            curl_setopt($curl, CURLOPT_HEADER, true);
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

            $curl_response = curl_exec($curl);

            return json_decode($curl_response); //this is the response I need passed over to the other class


   }
}

问题,如何从另一个控制器获取值?

任何人?

php laravel laravel-5.3
1个回答
1
投票

您可以使用几种方法来执行此操作

  1. 扩展课程
  2. 创建类对象
  3. 使用命名空间
  4. 制作身份验证服务然后调用它
© www.soinside.com 2019 - 2024. All rights reserved.