【问题标题】:How to redirect user invoking a function in contoller Class? - Laravel如何重定向用户调用控制器类中的函数? - 拉拉维尔
【发布时间】:2015-12-26 03:06:48
【问题描述】:

我希望用户得到计算结果。我不得不将localhost:8000/question/33 重定向到localhost:8000/caclulate/some_payload 我不知道该怎么做。

class QuestionController extends Controller

public function index($id)

if(question->id == 33)
    #Here I want to invoke calculate($payload)

    return view('quiz.index', [
        'payload' => $payload,
        'question' => $question,
        ]);
}
public function calculate($payload)
{

    return view('quiz.result', [
...
        ]);
}

我试过$this->calculate($payload)calculate()

【问题讨论】:

  • $payload 设置在哪里?您的控制器类是否可以访问它?

标签: laravel


【解决方案1】:

您是否期望 Request::json () 提供表单输入?或者,您是在寻找 Input::all() 表单输入吗?

【讨论】:

    【解决方案2】:

    如果我理解正确,您希望从另一个控制器方法调用控制器方法。 你可以这样试试:

    $request = Request::create('calculate/some_payload', 'GET', $params);
    return Route::dispatch($request)->getContent();
    

    有关更多信息,请参阅 Jason Lewis 的回答:Consuming my own Laravel API

    【讨论】:

      【解决方案3】:

      我已经解决了,我的问题是:

      return Redirect::action('QuestionController@calculate', 
      array('payload' => $payload));
      

      但它会生成带参数的地址

      http://localhost:8000/calculate?payload=%242y%2410%24V1OqC7rwp1w1rPXYQ42lRO9lJYQvmXB3nScw6D0EVeFR7VUz0QyCS
      

      我想使用$_POST 而不是$_GET,所以我需要用$_POST 调用方法并在方法计算中捕获$payload。我该怎么做?

      【讨论】:

        猜你喜欢
        • 2018-02-11
        • 2021-07-24
        • 1970-01-01
        • 2022-01-04
        • 2017-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-10
        相关资源
        最近更新 更多