Following up on my last night's question, I had a good night of sleep and "discovered" that this happens due to automatic casting / type conversion or whatever.
To summerize:
- Models use
uuid
as primary key - They get them by a
trigger
on insert from mySQL - To get the uuid generated by the database runtime I call
$model_object->fresh();
fresh()
- This works when getting the object as a whole, but not when selecting just an attribute
Model
<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Address extends Model {
protected $table = 'Addresses';
protected $fillable = ['uuid', 'zipCode', 'houseNumber'];
protected $primaryKey = 'uuid';
//public $incrementing = false;
}
Controller (where it screws up)
public function store(Request $request) {
$input = $request->all();
$address = Address::create($input);
var_dump($address); exit;
$address = $address->fresh();
var_dump($address); exit;
var_dump($address->uuid); exit;//result (wow): int(0)
}
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire