Php 在laravel中向数据库插入多个数据
嗨,我是拉威尔的新手,我在将数据插入数据库和抛出错误时遇到了麻烦 “count():参数必须是 数组或实现“可数”的对象 我想在数据库中添加所有已注册员工的考勤详细信息 控制器Php 在laravel中向数据库插入多个数据,php,laravel,Php,Laravel,嗨,我是拉威尔的新手,我在将数据插入数据库和抛出错误时遇到了麻烦 “count():参数必须是 数组或实现“可数”的对象 我想在数据库中添加所有已注册员工的考勤详细信息 控制器 public function Attendence() { $data=employee_data::all(); return view('attendence',compact('data')); } public function mark
public function Attendence()
{
$data=employee_data::all();
return view('attendence',compact('data'));
}
public function mark_attendence(Request $request)
{
$request->validate([
'date' => 'required',
'is_present' => 'required'
]);
$data=$request->all();
$last_id=employee_data::create($data)->id;
if (count($request->is_present) >0 )
{
# code...
foreach ($return->is_present as $item => $v)
{
$data2=array(
'is_present' =>$request->is_present[$item],
'date'=> $request->date[$item],
'user_id'=>$last_id
);
}
//$data2->save();
//$employee->save();
//$employee->employee_data()->create([]);
return redirect('/index')->with('succ','Attendence Added Successfully');
}
叶片输出:
提交
身份证件
名字
姓
加入日期
邮递
评论
@foreach($行数据)
{{$row->id}
{{$row->first_name}
{{$row->last_name}
{{$row->加入日期}
{{$row->post}
&出席
&缺席
@endforeach
身份证件
名字
姓
加入日期
邮递
评论
模型
班级员工注意力扩展模型
{
//
}
模型2
名称空间应用程序
使用Illumb\Database\Elount\Model
类employee_数据扩展模型
{
//受保护的$fillabel=[‘姓’、‘姓’、‘联系号码’、‘加入日期’、‘邮寄’]
protected $fillable = array('first_name', 'last_name', 'contact_no' ,'date_joining','post' );
//protected $fillable=[];
public $timemstamps= false ;
public function employee_attendence()
{
//return $this->hasOne( employee_attendence::class, 'App/employee_attendence');
return $this->belongsTo('App\employee_attendence');
}
}
据我所知。您可能有is\u present
将是视图中的数组格式,如name=“is\u present[]”
。如果这是您的情况,那么下面的代码可以正常工作。如果不是,则如果输入不是对象或数组,则不能使用count()
公共功能标记出席(请求$Request)
{
对于($i=0;$iis_present);$i++)
{
$emp=新员工的考勤();
如果($request->is_present[$i]=“present”)
$emp->is_present=“present”;
如果($request->is_present[$i]=“缺席”)
$emp->is_present=“缺席”;
$emp->date=now();
$emp->user_id=$request->user_id[$i];
$emp->save();
}
返回重定向('/index')->带有('succy','attentince Added Successfully');
}
在“添加考勤”方法中,尝试以下操作
这对我有用
for($i = 0; $i < sizeof($request->is_present); $i++)
{
$emp = new employee_attendence();
if($request->is_present[$i] == "Present")
$emp->is_present = "Present";
if($request->is_present[$i] == "Absent")
$emp->is_present = "Absent";
$emp->date = $request->date;
$emp->user_id = $request->user_id[$i];
$emp->save();
}
for($i=0;$iis_present);$i++)
{
$emp=新员工的考勤();
如果($request->is_present[$i]=“present”)
$emp->is_present=“present”;
如果($request->is_present[$i]=“缺席”)
$emp->is_present=“缺席”;
$emp->date=$request->date;
$emp->user_id=$request->user_id[$i];
$emp->save();
}
您的是否存在
视图侧的阵列?不存在缺席查看我下面的答案它将适用于您。但是你有像缺席
和呈现
这样的值,因此请相应地检查条件。它引发了一个错误:未定义的错误:return你是一次标记缺席或呈现,还是先选中或取消选中,然后立即提交?ErrorException未定义变量:return我刚刚展示了循环的一个简单逻辑。您必须在下表中插入$data2
。$data2?如果你还记得我也给了你答案的话。
public function mark_attendence(Request $request)
{
for($i = 0; $i < sizeof($request->is_present); $i++)
{
$emp = new employee_attendence();
if($request->is_present[$i] == "Present")
$emp->is_present = "Present";
if($request->is_present[$i] == "Absent")
$emp->is_present = "Absent";
$emp->date = now();
$emp->user_id = $request->user_id[$i];
$emp->save();
}
return redirect('/index')->with('succ','Attendence Added Successfully');
}
for($i = 0; $i < sizeof($request->is_present); $i++)
{
$emp = new employee_attendence();
if($request->is_present[$i] == "Present")
$emp->is_present = "Present";
if($request->is_present[$i] == "Absent")
$emp->is_present = "Absent";
$emp->date = $request->date;
$emp->user_id = $request->user_id[$i];
$emp->save();
}