Php 将外键用户id保存到posts表
我正在开发一个带有用户和post模型的laravel应用程序,我得到一个错误:Php 将外键用户id保存到posts表,php,laravel,Php,Laravel,我正在开发一个带有用户和post模型的laravel应用程序,我得到一个错误: Field 'user_id' doesn't have a default value 我已经为这两种模型建立了关系。帖子属于用户,用户可以拥有任意多个帖子。用户id未保存到数据库中的post表中 邮政总监: class PostController extends Controller { public function postCreatePost(Request $request){
Field 'user_id' doesn't have a default value
我已经为这两种模型建立了关系。帖子属于用户,用户可以拥有任意多个帖子。用户id未保存到数据库中的post表中
邮政总监:
class PostController extends Controller
{
public function postCreatePost(Request $request){
$this->validate($request, [
'body' => 'required'
]);
$post = new Post([
'body' => $request->input('body')
]);
$post->save();
return redirect()->route('dashboard');
}
路线:
Route::post('/createpost', [
'uses' => 'PostController@postCreatePost',
'as' => 'post.create'
]);
您需要指定
用户id
:
$post = new Post([
'body' => $request->input('body'),
'user_id' => auth()->user()->id
]);
或者您可以使用关系:
$user = auth()->user();
$user->posts()->create(['body' => $request->input('body')]);
另外,不要忘记在
Post
模型中的$filleble
数组中添加user\u id
。原因是保存Post时没有提供user\u id
一个解决办法是
$post = new Post([
'body' => $request->input('body'),
'user_id' => $your_use_id
]);
@Gayan你忘记在数组中添加逗号了。