我在一个post请求的HTTP正文中发送了这个JSON数据。
{
"id" : 238,
"title": "Its a title",
"description": "Its a description",
"target_price": 3000,
"date_of_availability": "16-02-2023",
"condition": "abc",
"latitude": "-31.953030",
"longitude": "115.853600",
"attributes": {
"list" : [
{
"title" : "Color",
"value" : "Red"
},
{
"title" : "Frame",
"value" : "Metal Frame"
}
]
}
}
我想将attributes
存储在json
数据类型字段中。我可以获得控制器中所有其他字段的值,但当我使用dd($request->attributes);
时,它显示我的参数包为空。
我怎样才能得到$request->attributes
并将其存储在我的mysql的json
数据类型字段中。
这是我的迁徙
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id('post_id')->generatedAs();
$table->string('title');
$table->text('description');
$table->integer('target_price')->nullable();
$table->date('date_of_availability')->nullable();
$table->string('condition')->nullable();
$table->decimal('latitude', 11, 8);
$table->decimal('longitude', 11, 8);
$table->json('attributes')->nullable();
$table->timestamps();
});
}
我在这里拯救
$post = new Post();
$post->title = $data->title;
$post->description = $data->description;
$post->target_price = $data->target_price;
$post->date_of_availability = date("Y-m-d", strtotime($data->date_of_availability));;
$post->condition = $data->condition;
$post->latitude = $data->latitude;
$post->longitude = $data->longitude;
$post->attributes = $data->attributes;
$post->save();
这是我得到的$post->attributes = $data->attributes;
行的错误
“留言”:“类Symfony\Component\HttpFoundation\ParameterBag的对象无法转换为字符串”,
1条答案
按热度按时间owfi6suc1#
Laravel请求对象使用魔术方法来访问请求体中传递的参数,这仅在
Request
类没有同名属性时有效。Illuminate\Http\Request
类扩展了Symfony\Component\HttpFoundation\Request
类,后者具有一个名为$attributes
的显式属性:如果你想从请求体中显式地获取一个属性而不使用魔术方法,你可以使用
input
或json
方法: