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);
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

你应该这样写


$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;
2周前 评论
Partrick (楼主) 2周前
讨论数量: 16
sreio

Illuminate\HttpRequest 里面有个这个方法

file

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

file

这几个类型都行 laravel9.0

3周前 评论
Partrick (楼主) 2周前

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

3周前 评论
Partrick (楼主) 2周前
deatil (作者) 2周前

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

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

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

你应该这样写


$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;
2周前 评论
Partrick (楼主) 2周前

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

2周前 评论
Partrick (楼主) 2周前

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

1周前 评论

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