问题描述
我在Laravel-5.8中有一个项目,可以使用Maatwebsite执行excel上传。
型号
class HrLeaveRequest extends Model
{
protected $table = 'hr_leave_requests';
protected $fillable = [
'id','employee_id','leave_type_id','commencement_date',];
public function employee()
{
return $this->belongsTo('App\Models\Hr\HrEmployee','employee_id');
}
public function leavetype()
{
return $this->belongsTo('App\Models\Hr\HrLeaveType','leave_type_id');
}
}
class HrLeaveType extends Model
{
protected $table = 'hr_leave_types';
protected $fillable = [
'company_id','leave_type_name',];
}
Excel上传
$this->staffid = $row['staff_id'];
$this->leavetype = $row['leave_type'];
return new HrLeaveRequest([
'employee_id' => $this->getStaffId(),'leave_type_id' => $this->getLeaveType(),'commencement_date' => $this->transformDate($row['commencement_date']),]);
public function getStaffId(){
return HrEmployee::where('employee_code',$this->staffid)->pluck('id')->first();
}
public function getLeaveType(){
return HrLeaveType::where('leave_type_name',$this->leavetype)->pluck('id')->first();
}
public function transformDate($value,$format = 'Y-m-d')
{
try {
return \Carbon\Carbon::instance(\PHPOffice\PHPSpreadsheet\Shared\Date::excelToDateTimeObject($value));
} catch (\ErrorException $e) {
return \Carbon\Carbon::createFromFormat($format,$value);
}
}
public function rules(): array
{
return [
'staff_id' => 'required|max:15','leave_type' => 'required|max:255','commencement_date' => 'required',];
}
leave_type_id是hr_leave_types中的外键
我已经用它了
'leave_type_id' => $this->getLeaveType(),
我观察到,假假类型名称错误时,上传仍会继续,并且会添加null。
我的意思是
'leave_type' => 'required|max:255',
未对其进行验证。
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)