Laravel9中将一个Object追加到Request中出现错误,请问,如何能将object追加到request中

1. 运行环境 Ubuntu 11.2.0-19ubuntu1 Laravel Framework 9.20.0

2. 在中间件中将一个Object追加到Request中出现错误

$viewingCircular = (object) array(
   'id' => 3,
   'parent_send_order' => 0,
   'mst_company_id' => 14,
   'mst_user_id' => 6,
   'memo' => '',
   'del_flg' => 0,
   'create_user' => 'test@email.com',
   'update_user' => 'test@email.com',
   'create_at' => '2023-01-06 18:19:29',
   'update_at' => NULL,
   'origin_circular_url' => NULL,
);
$request['current_viewing_user'] = $viewingCircular;

出现以下错误

Expected a scalar, or an array as a 2nd argument to "Symfony\Component\HttpFoundation\InputBag::set()", "stdClass" given.

请问,如何能将object追加到request中?

尝试以下方式都不行

1. $request->merge(['current_viewing_user' => $viewingCircular]);
2. $request->offsetSet('current_viewing_user',$viewingCircular);
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

你应该这样写


$viewingCircular = (object) array(
   'id' => 3,
   'parent_send_order' => 0,
   'mst_company_id' => 14,
   'mst_user_id' => 6,
   'memo' => '',
   'del_flg' => 0,
   'create_user' => 'test@email.com',
   'update_user' => 'test@email.com',
   'create_at' => '2023-01-06 18:19:29',
   'update_at' => NULL,
   'origin_circular_url' => NULL,
);
$request->current_viewing_user = $viewingCircular;
3年前 评论
Partrick (楼主) 3年前
讨论数量: 16
sreio

Illuminate\HttpRequest 里面有个这个方法

file

3年前 评论
sreio (作者) 3年前
seebyyu 3年前
Partrick (楼主) 3年前
sreio

file

这几个类型都行 laravel9.0

3年前 评论
Partrick (楼主) 3年前

报错提示了只能用那两个类型,其他的类型不能。直接用数组就行了

3年前 评论
Partrick (楼主) 3年前
deatil (作者) 3年前
随波逐流

可以使用 序列化 合并到 request 中, 读取时再 反序列化

$request->merge([
    'test' => serialize((object)[
        'id'   => 1,
        'name' => 'unserialize lable'
    ])
]);

$test = unserialize($request->input('test'));
print_r($test);
3年前 评论
Partrick (楼主) 3年前

你应该这样写


$viewingCircular = (object) array(
   'id' => 3,
   'parent_send_order' => 0,
   'mst_company_id' => 14,
   'mst_user_id' => 6,
   'memo' => '',
   'del_flg' => 0,
   'create_user' => 'test@email.com',
   'update_user' => 'test@email.com',
   'create_at' => '2023-01-06 18:19:29',
   'update_at' => NULL,
   'origin_circular_url' => NULL,
);
$request->current_viewing_user = $viewingCircular;
3年前 评论
Partrick (楼主) 3年前

是不是可以 Session::flash 这样也行

3年前 评论
Partrick (楼主) 3年前

$request->merge(['key' => 'value'])

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!