When I have started with the project using Laravel 5.7 and PHP 7.3, $info->id
returned correctly the last insert id. Now, I did some changes at the login file (all changes are here) and not at this files, but it doesn’t work.
The gf_id in the table is autoincrement, the function $info->id return null.
I have tried to delete the row “public $incrementing = false;
” and to set it to false but there aren’t any changes. I have tried with other function like $info->_id
or $this->id
and also have changed $info->save
with $info->create
but nothing, always null.
If I use getPrimaryKey return the error “Call to undefined method“.
In the database the row is created correctly.
If I print the object $info with dd($info);
, the result is this:
GfTableModel {#233 #table: "gf_table" #primaryKey: "gf_id" +timestamps: false +incrementing: false #connection: "mysql" #keyType: "int" #with: [] #withCount: [] #perPage: 15 +exists: true +wasRecentlyCreated: true #attributes: array:5 [ "gf_user" => 5 "gf_new" => 1 "gf_data" => "2019-03-22 14:08:28" "gf_object" => "" "gf_text" => "" ] #original: array:5 [ "gf_user" => 5 "gf_new" => 1 "gf_data" => "2019-03-22 14:08:28" "gf_object" => "" "gf_text" => "" ] #changes: [] #casts: [] #dates: [] #dateFormat: null #appends: [] #dispatchesEvents: [] #observables: [] #relations: [] #touches: [] #hidden: [] #visible: [] #fillable: [] #guarded: array:1 [ 0 => "*" ] }
This is my GfTableModel.php:
<?php namespace App; use IlluminateDatabaseEloquentModel; class GfTableModel extends Model { protected $table = 'gf_table'; protected $primaryKey = 'gf_id'; public $timestamps = false; public $incrementing = true; public function insertNewRow(){ $info = new GfTableModel(); $info->gf_user = auth()->id(); $info->gf_data = date("Y-m-d H:i:s"); $info->gf_new = 1; $info->gf_object = ""; $info->gf_text = ""; $info->save(); return $info->id; } }
Where am I doing wrong? Could it be a problem given by the command php artisan config: cache
?
Thank you
Advertisement
Answer
I ran into something similar. As of Laravel 5.7, 5.8 you can do this:
return $info->getKey();
This works regardless of the name of the primary key.