gpt4 book ai didi

php - Laravel 中如何将一个值从一个 Controller 传递到另一个 Controller

转载 作者:行者123 更新时间:2023-12-01 21:25:08 25 4
gpt4 key购买 nike

我正在努力将变量从一个 Controller 方法传递到 Laravel 中的另一个方法。

当用户创建产品时,我想让他知道结果。

问题是,执行 Create 方法后,消息应该在传递到 View 之前再传递给一个 Controller 。

我正在尝试将成功或失败消息从 postCreate 方法传递到 getList 方法。

创建方法:

    public function postCreate() {
if(validation passes){
//create product
return Redirect::to('admin/products/list/'.$current_section_id)
->with('message', 'New Product Created');
}
else{
return Redirect::to('admin/products/new)
->with('message', 'Something went wrong');
}

}

getList 方法将用户返回到他之前所在的页面 (current_section_id) 并列出产品

public function getList($id){
$message = Input::get('message');

return View::make('products.list')
->with('current_section_id', $id)
->with('message', $message);
}

我尝试使用 ->with('message', $message); 来传递消息,但它不像在 View 中的表单那样工作。

正确的做法是什么?

最佳答案

在 View 上使用 with() 会将数据添加到同一 http 请求中传递给 View 的数据中。但是,您正在执行重定向并因此创建新请求,因此 with() 的操作方式有所不同。

要在 http 请求之间传递数据,您需要将其附加到 url(可能不是一个好主意)或将其存储在 session 中(更好),Laravel 的 session 处理支持非常巧妙,允许您flash 数据,即仅将其放置在 session 中以用于下一个 http 请求(重定向上的 with() 会为您执行此操作),然后负责将其清除)。

您可以在Laravel documentation中查看更多相关信息。 。但是,这意味着您应该在 session 数组中查找数据,而不是期望它自动注入(inject)到 View 中。

关于php - Laravel 中如何将一个值从一个 Controller 传递到另一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29870267/

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