如何重定向用户在控制器类中调用函数? - Laravel

时间:2015-09-28 19:27:44

标签: laravel

我希望用户获得计算结果。我必须将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()

3 个答案:

答案 0 :(得分:1)

如果我理解正确,您需要来自另一个控制器方法的调用控制器方法。 你可以这样试试:

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

有关详细信息,请参阅Jason Lewis在此处回答:Consuming my own Laravel API

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

但它使用参数

生成地址
http://localhost:8000/calculate?payload=%242y%2410%24V1OqC7rwp1w1rPXYQ42lRO9lJYQvmXB3nScw6D0EVeFR7VUz0QyCS

我想使用$_POST代替$_GET,因此我需要使用$_POST调用方法并在方法计算中捕获$payload。我怎么能这样做?