Laravel 手动传递外键值
我无法将外键值(即用户id)传递给我新创建的文章 这是我的代码…Laravel 手动传递外键值,laravel,Laravel,我无法将外键值(即用户id)传递给我新创建的文章 这是我的代码… <?php if (is_null($request->user_id)) { $request->user_id = $user->user_id; } $request->validate(['title' => 'Required|string|min:3', 'body' => 'Required|string|min:5', 'user_id' => 'Requ
<?php
if (is_null($request->user_id)) {
$request->user_id = $user->user_id;
}
$request->validate(['title' => 'Required|string|min:3', 'body' => 'Required|string|min:5', 'user_id' => 'Required|exists:users,user_id']);
if ($article = Article::create($request->all())) {
event(new ArticleCreated($user));
return response()->json(['success' => true, 'reason' => 'Article Created successfully', $article]);
} else {
return 'Article could not be created';
}
试试这个
public function store(Request $request)
{
$request->validate([
'title' => 'Required|string|min:3',
'body' => 'Required|string|min:5',
]);
$data = $request->all();
//you don't need to validate user_id is correct
//if you are using auth middleware in the route
$user = auth()->user()
$data['user_id] = $user->id
if ($article = Article::create($data)) {
event(new ArticleCreated($user));
return response()->json([
'success' => true,
'reason' => 'Article Created successfully',
$article
]);
} else {
return 'Article could not be created';
}
}
希望这有助于检查文章模型中的可填充数组,必须有用户id,并检查用户id是否在$request->all()
if($article = Article::create($request->all())) {
$article->user_id = $request->user_id;
$article->save();
event(new ArticleCreated($user));
return response()->json(['success' => true, 'reason' => 'Article Created successfully', $article]);
}
请格式化您的代码粘贴完整的代码,以及您获取dd($request->all())中的内容的错误是什么;?我不知道Laravel是否对验证函数区分大小写,因此所需的三个可能不起作用。除此之外:请注意您有一个感叹号代码>在您的用户id
验证中,而不是管道
。Laravel区分大小写,它应该是必需的,不需要。我喜欢您的方式,但我仍然无法将用户id传递给新创建的文章。用户id在新创建的文章中为空。发布您的文章
模型的$filleble