Christian Gallarmin
Christian Gallarmin

Reputation: 660

Laravel insert data array to database

I have this line of codes at my Controller to get data from google analytics

$analyticsData = Analytics::performQuery(Period::days(30),
    'ga:',
    [
        'metrics' => 'ga:users,ga:newUsers,ga:sessions,ga:sessionsPerUser,ga:pageviews,ga:pageviewsPerSession,ga:avgSessionDuration,ga:bounceRate',
        'start-date' => '2018-08-01',
        'end-date' => '2018-09-02',
        'dimensions' => 'ga:pageTitle',
    ]);

When I dd($analyticsData); This is what I got.

analytics

This is my migration query.

    Schema::create('analytics', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('site_id');
        $table->string('site_url');
        $table->integer('report_id');
        $table->integer('analytics_view_id'); 
        $table->date('reportGenerated');
        $table->integer('gaUsers');
        $table->integer('gaNewUsers');
        $table->integer('gaSessions');
        $table->integer('gaSessionsPerUser');
        $table->integer('gaPageviews');
        $table->integer('gaPageviewsPerSession');
        $table->integer('gaAvgSession');
        $table->integer('gaBounceRate');

    });

Now my problem is how can I able to stores those array data to my database? Thank you.

Upvotes: 0

Views: 698

Answers (2)

Marcin Nabiałek
Marcin Nabiałek

Reputation: 111899

It would be something like:

$model = Analytics::create([
   'gaUsers' => $analyticsData['ga:users'],
   'gaNewUsers' => $analyticsData['ga:newUsers'],
   // ... and so on...
]);

Just in case make sure you have those fields in $fillable attribute of your Analytics model.

Upvotes: 1

Gihan Lakshan
Gihan Lakshan

Reputation: 403

Try:

$analytic = new Analytics();

$analytic->gaUsers = $analyticsData['ga:users'];
$analytic->gaNewUsers = $analyticsData['ga:newUsers'];
...
$analytic->save();

Upvotes: 1

Related Questions