Laravel外键守卫或可填充

时间:2017-09-03 18:57:22

标签: php laravel rest laravel-5

我正在尝试使用Laravel 5开发Restful API,我有一个表格如下

Schema::create('reports', function (Blueprint $table) {
    $table->increments('id');
    $table->string('company_name');
    $table->string('direction');
    $table->integer('user_id')->unsigned();
    $table->timestamps();
});

字段user_id是外键,我想在通过Android应用程序发出POST请求时创建新的Report记录。

我的问题是,user_id字段的状态应该是什么?守卫或可填写?

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:0)

您应该将其设置为可填写,因为您要在模型创建时设置此值。

有关详细信息,请参阅文档: https://laravel.com/docs/5.0/eloquent#mass-assignment

答案 1 :(得分:0)

老实说,我建议重新考虑这个策略,但是,如果你真的需要这样做的话,你可以试试这个。

请勿将user_id添加到$fillable$guarded。设置model observer并在那里分配ID。

通过这种方式,您可以安全地将呼叫传递给报告模型,并且仍然可以进入创建/阅读报告/用户的过程