我需要在我的控制器的一个方法中返回一个 post 路由,该路由使用函数接收的参数发送其请求,这就是我的控制器中的内容:
public function miFunciondeControlador()
{
$parametro1 = "valor1";
$parametro2 = "valor2";
$parametro3 = "valor3";
$request_enviar = new Request();
$request_enviar->setMethod('POST');
$request_enviar->request->add(['parametro1' => $parametro1,'parametro2' => $parametro2,'parametro3' => $parametro3 ]);
//Necesito algo parecido a esto para llamar a esta ruta que es post que recibe un request
return redirect()->route('miruta', ['request' => $request_enviar ]);//No funciona
}
在路由文件中,这是我需要调用的路由:
Route::post('/miruta','miController@metodoCualquiera')->name('miruta');
这就是我试图调用的函数接收参数的方式:
public function metodoCualquiera(Request $request)
{
$parametro1 = $request->parametro1;
$parametro2 = $request->parametro2;
$parametro3 = $request->parametro3;
dd($request); //Imprime Vacio
}
我不知道你想用一种重定向到 POST 来做什么,但我敢说这是一种不好的做法,就好像你试图与两个控制器通信,但你还添加了一个HTTP请求的成分。
按照设计约定,如果一个或多个控制器的两个方法需要使用相同的“代码”,那么该代码必须在另一层,它可以是模型、服务、存储库、接口、特征等。
也就是说,我们将有三个主角,我们将使用 DI:
从方法和/或控制器接收信息的服务
你展示的第一个方法
第二种方法,接收POST的方法
不要忘记添加
use App\Services\MiServicio;
相应的。