将外键user_id保存到posts表

时间:2017-01-22 14:52:42

标签: php laravel

我正在使用用户和帖子模型开发一个laravel应用程序,并且我收到错误:

Field 'user_id' doesn't have a default value

我为两个模型建立了关系。帖子属于用户,用户可以拥有尽可能多的帖子。 user_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'

]);

2 个答案:

答案 0 :(得分:1)

您需要指定user_id

$post = new Post([
    'body' => $request->input('body'),
    'user_id' => auth()->user()->id
]);

或者你可以使用关系:

$user = auth()->user();
$user->posts()->create(['body' => $request->input('body')]);

另外,不要忘记将user_id添加到$fillable模型中的Post数组中。

答案 1 :(得分:1)

原因是您在保存帖子时没有给rdtsc

一个解决方案是。

rdtsc