我有以下总线型号:
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和座位号。
答案 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”中指定