Model.php第232行

时间:2017-05-18 14:17:50

标签: php laravel eloquent laravel-5.4

我有以下总线型号:

class Bus extends Model
{
    protected $guarded =[''];
    protected $fillable = ['plate_num','seat_num'];

    public function seats(){

        return $this->hasMany(Seat::class);
    }

    public function addSeat($number){

        $this->seats()->create([
            'seat_num'=> $number

            ]);
    }
}

在我的BusController中,我有以下商店功能,从表单中获取2个值('plate_num'和'seat_num')

虽然我有 $ fillable 数组,其中包含所需的字段( Seat @ seat_num Bus @ plate_num )但是,每当我提交表单我收到以下错误:

  

Model.php第232行Seat_num中的MassAssignmentException

代码的逻辑基本上是每当我输入公交车牌号座位数时,例如“ABC213”和< strong>“5”,应在包含plate_num的总线表中创建一条记录,并在Seats表中创建5条记录,其中每条记录获取总线的id和座位号。

4 个答案:

答案 0 :(得分:5)

编辑您的模型

protected $fillable = ['plate_num'];

添加座位型号

protected $fillable = ['seat_num'];

现在您可以在控制器中添加

use App\seat;
use App\bus;
public function add(){
$seat = new seat;
$bus = new bus;

答案 1 :(得分:3)

您需要在$fillable模型中填写Seat数组,而不是Bus模型。

使用时:

$this->seats()->create(...);

您创建了Seat个模型,因此在这种情况下,可以使用Seat模型中的fillable。

答案 2 :(得分:1)

删除模型中的以下行。

protected $guarded =[''];

您应该只设置保护或可填写,而不是两者。还要检查您是否在相关模型中设置了正确的可填充属性。发布更多您尝试做的代码会有所帮助。

答案 3 :(得分:0)

要解决Laravel MassAssignmentException in model.php需要遵循以下步骤:

可能由于两种可能性而发生:

对于质量分配,需要提供模型的所有字段,这些字段将在更新或创建操作期间进行批量分配。

protected $fillable = ['age', 'phone', 'mail', 'location', 'created_at', 'updated_at'];

表名应在模型文件

中的$ table =“user_info”中指定