gpt4 book ai didi

php - 作为 POST 从一个 Controller 重定向到另一个 Controller

转载 作者:行者123 更新时间:2023-12-04 02:54:45 26 4
gpt4 key购买 nike

我的 Controller 中有一个数组,我想使用该数组数据重定向到另一个路由。

class HomeController {
public function start() {
$dirs = ['X', 'Y'];

return redirect()->route('success', $dirs);
}

public function next($dirs) {
dd($dirs); // aim is getting data here
}
}

我的路线如下:

Route::post('/success', ['as' => 'success', 'uses' => 'HomeController@next']);

我尝试了 get 方法,但随后我需要弄乱 url 并在那里放置 /success/{dirs} ,这是我不想要的。

实现这一目标的正确方法是什么?


更新:

使用这个不起作用:S

public function start() {
return redirect()->route('success', $dirs)->with('dirs', $dirs)->with('clientNames', $clientNames);
}

public function next() {
dd(session('dirs') // returns null
}

最佳答案

route 方法的第二个参数是查询参数,它将把数组值附加到路由中,如 /success?X&Y

function route($name, $parameters = [], $absolute = true)
{
return app('url')->route($name, $parameters, $absolute);
}

不要将数组传递给路由,而是使用 with 方法将数据放入 session 中,然后使用其他路由上的 session 辅助函数检索它。

文档:Redirecting with flashed session data

试试这个

路线

Route::get('/success', 'HomeController@next')->name('success');

Controller

class HomeController 
{
public function start()
{
$dirs = ['X', 'Y'];

return redirect()->route('success')->with('dirs', $dirs);
}

public function next()
{
$dirs = session('dirs');
}
}

关于php - 作为 POST 从一个 Controller 重定向到另一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45831139/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com