Laravel将消息从函数传递给控制器

时间:2016-08-02 13:11:00

标签: php laravel

我正在尝试将我的函数中的API返回的错误消息显示在控制器中,但即使我自己设置了错误变量,它也会返回null,即:$error = 'Error Message'

功能:

class ImportexportDomains {
public function add($input) {
       $error = $data['message'];
       return $error;
}
}

控制器:

    public function store() {
    $input = array_except(Input::all(), '_method');
    $addnew = new ImportexportDomains;
    $addnew->add($input);
    dd($addnew);
}

$addnew

ImportexportDomains {#285 ▼
  +error: null
}

3 个答案:

答案 0 :(得分:1)

$input

在上面的函数中,从未使用过public function add($input) { $error = ""; if($input == ""){ $error = "Not valid input"; } return $error; } ,之后作为该函数中的参数传递的任何内容都将无效。

    javax.net.ssl.trustStore=cacerts
    javax.net.ssl.keyStore=1234567890123
    javax.net.ssl.keyStorePassword=wordpass

这可能不是你想要的,但你可以从中得到想法。

答案 1 :(得分:0)

您的代码有几个错误。看起来你不明白一个类和对象是如何工作的。

  1. ImportexportDomains add()不是函数。它被称为方法
  2. $data变量在add方法上下文中不存在。 (事实上​​,它不存在于任何地方)
  3. 您正在对象dd(),而不是add方法响应。
  4. 我知道你想通过自己尝试来学习,但是有一个很好的社区叫Laracasts,它有一些非常好解释的截屏视频。

    这两个系列将帮助你理解一切!

    1. https://laracasts.com/series/php-for-beginners
    2. https://laracasts.com/series/laravel-5-from-scratch
    3. 您需要支付一个月的时间才能访问这些视频,但它只需要8美元!!!

答案 2 :(得分:0)

方式

class ImportexportDomains {
public $error;

public function add($input) {
    $userid = Settings::where('acc_id', Auth::user()->acc_id)->where('setting', 'resellerclub_id')->value('value');
    $apikey = Settings::where('acc_id', Auth::user()->acc_id)->where('setting', 'resellerclub_key')->value('value');
    $cust_email = Client::where('id', $input['client_id'])->value('email');

   $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, "https://httpapi.com/api/customers/details.json?auth-userid=$userid&api-key=$apikey&username=$cust_email");
        curl_setopt($ch, CURLOPT_VERBOSE, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $httpResponse = curl_exec($ch);
        $data = json_decode($httpResponse, true);

        if (isset($data['status'])) {
            $error = $data['message'];
        }

 return $this->error = $error;

<强>控制器

    public function store() {
        $input = array_except(Input::all(), '_method');
        $addnew = new ImportexportDomains;
        $addnew->add($input);
        echo $addnew->error;
}