我希望用户获得计算结果。我必须将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()
。
答案 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
。我怎么能这样做?