当前位置: 首页 > 知识库问答 >
问题:

在laravel中插入多个数据到数据库

孔扬
2023-03-14

嗨,我是拉威尔的新手,我在将数据插入数据库和抛出错误时遇到了麻烦

msgstr"Countable():参数必须是实现可数的数组或对象"

我想在数据库中添加所有注册员工的出勤信息

控制器

    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');
    }

叶片输出:

模型类员工出席扩展模型{//

protected $fillable  = array('is_present' ,'date', 'user_id' );
//protected $fillable=[];
public $timemstamps= false ;

public function employee_data(){
        //return $this->hasOne(employee_data::class,'App/employee_data');
    return $this->hasOne('App\employee_data');

}

}

模型2

命名空间App;

使用Illumb\Database\Elount\Model;

类employee_data扩展模型{//protected$fillabel=['first_name','last_name','contact_no','date_joining','post'];

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');
}

}

共有2个答案

贺轶
2023-03-14

在你的“添加出勤”方法中,试试这个对我有用的方法

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();
    }
常鸿朗
2023-03-14

据我所知。您可能有is\u present将是视图中的数组格式,如name=“is\u present[]”。如果这是您的情况,那么下面的代码可以正常工作。如果不是,则如果输入不是对象或数组,则不能使用count()

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');
}

 类似资料:
  • 嗨,我已经搜索并试图解决这个问题,但未能找到解决方案,抱歉占用了你的时间。我在laravel中插入一组数据与查询生成器一次插入多个数据。 有没有办法检查表中的值是否存在,然后更新,否则插入。如果所有数据成功更新或插入,我想从查询结果中返回或。我想解决它与laravel查询生成器。谢啦

  • 我想我在这段代码中遇到了一点问题:当我试图在数据库中插入值时,我遇到了一个错误。

  • 我正在尝试创建一个简单的pdf多页文档中的字段。为此,我有一个模板pdf,在代码中,我根据需要多次克隆这个模板,以便创建文档本身。 问题是在其中插入一些数据。我尝试插入到文档中的数据类型不应该在不同的页面中改变。相反,它在所有页面中保持静态,就像“pages”数字表示文档中包含的页面数。 现在,在我的模板pdf中,我有一些文本字段,例如,“shipper1”和“pages”。我希望能够将我的数据插

  • 我有一个用户表和一个帐户表。 此帐户表定义用户可以拥有的帐户。 例如 账户: 用户: 我现在有另一个表:users\u accounts 我正在为新用户创建一个界面。在这个页面上,我有基本的细节,但也有一个复选框列表(从accounts表创建)。复选框表示用户需要为其设置的帐户。 我要做的是创建帐户时: 我还想将用户ID和他们需要设置的帐户添加到users_accounts表中。单个用户可能需要多

  • 我是laravel的新手,当我使用单击函数提交表单时出现了一些问题。ajax jquery controller不会将数据保存到数据库,每次响应时都会使用整个html文件。请帮帮我。 关于标题的一些信息 请求URL:http://akshay.laravel/patient1?fname=asdknkl 状态代码:200 OK 远程地址:[::1]:80 推荐人策略:降级时无推荐人 缓存控制:无缓

  • 我正在建立一个音乐发现服务。我的问题是:如何将数据插入到三方数据透视表Tag_Track_User? 我在LaravelSD看到了这个模式 它包括六个主要表(和其他几个):艺术家,专辑,曲目,标签,用户和Tag_Track_User 艺术家们 标签、轨迹和用户都是相互关联的,因为没有第三个,任何两个都不可能存在。 艺术家有许多()专辑 专辑有许多歌曲,属于艺术家 曲目belongsTo()相册 跟