您传递的是数据数组的数组,而不是数据数组,这将起作用:
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\Event;
use Illuminate\Http\Request;
class EventController extends Controller
{
public function store(Request $request)
{
$request->validate([
'name' => 'required|string|max:255',
'description' => 'nullable|string',
'start_time' => 'required|date',
'end_time' => 'required|date|after:start_time',
]);
$event = Event::create([
'name' => $request->name,
'description' => $request->description,
'start_time' => $request->start_time,
'end_time' => $request->end_time,
'user_id' => 1,
]);
return $event;
}
}
您的代码正在执行以下操作:
$data = $request->validate([
'name' => 'required|string|max:255',
'description' => 'nullable|string',
'start_time' => 'required|date',
'end_time' => 'required|date|after:start_time',
]);
$event = Event::create(
[
$data,
'user_id' => 1,
]
);
所以,你的数据是这样的:
$data = [
0 => [
'name' => 'name value',
'description' => 'description value',
'start_time' => 'start time value',
'end_time' => 'end time value',
],
'user_id' => 1,
];
但你希望它是这样的:
$data = [
'name' => 'name value',
'description' => 'description value',
'start_time' => 'start time value',
'end_time' => 'end time value',
'user_id' => 1,
];
所以,事实上,你已经
name
丢失的这也是方式
user_id
是已尝试的查询中唯一完成的值(请检查错误),但所有其他值都丢失了。