Laravel 手动传递外键值

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

我无法将外键值(即用户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' => '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