Klav
Klav

Reputation: 405

Accessing input array data Laravel 4.2 Form

I'm struggling to access all of the input array data in Laravel, as I was with no problem previously: e.g., $_POST['name'][$row]

I'm also receiving the following error, but I assume it's because of the NULL data.
SQLSTATE[42S22]: Column not found: 1054 Unknown column '0' in 'field list'

POST Data:

name    Array ( [0] => name1 [1] => name2 )
dob Array ( [0] => 06/23/16 [1] => 06/03/16 )
gender  Array ( [0] => 1 [1] => 0 )

Loop:

$jobID = 2;
$data = array();
foreach(Input::get('name') as $row=>$name){

    $dob = Input::get('dob'.$row);
    $gender = Input::get('gender'.$row);

    $data[] = "['job_id' => '$jobID', 'first_name' => '$name', 'dob' => '$dob', 'gender' => '$gender']";

}

$data_insert = implode(',', $data);

if(!empty($name)) {
    DB::table('job_data')->insert([
        $data_insert
    ]);

}

Resulting SQL:

insert into `job_data` (`0`) 
values (
  ['job_id' => '2', 'first_name' => 'name1', 'dob' => '', 'gender' => ''],
  ['job_id' => '2', 'first_name' => 'name2', 'dob' => '', 'gender' => '']
)

Upvotes: 0

Views: 330

Answers (1)

Ronald
Ronald

Reputation: 73

You dont have to stringify your data, just simply use this

$data[] = [
    'job_id' => $jobID, 
    'first_name' => $name, 
    'dob' => $dob, 
    'gender' => $gender
];

and insert it with

DB::table('job_data')->insert($data);

Upvotes: 1

Related Questions