My code has an address Modelin Eloquent, it looks like this:
Remarkably: all my models use uuid for the primary key, it is generated by a trigger in the MySQL database. This in itself works well.
<?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;
}
In my controller, I create a function to create a new address, which gets its uuid from the trigger (as mentioned above). To pass this uuid, that is also a foreign key, I'm trying to call my userfresh();
<?php
public function store(Request $request) {
$input = $request->all();
try {
$address = Address::create($input);
$address = $address->fresh();
} catch (\exception $e) {
$response['error'] = $e->getMessage();
return response($response, 400);
}
}
before rebooting (and getting my uuid), the object $addressis
object(App\Models\Address)
["table":protected]=>
string(9) "Addresses"
["fillable":protected]=>
array(3) {
[0]=>
string(4) "uuid"
[1]=>
string(7) "zipCode"
[2]=>
string(11) "houseNumber"
}
["primaryKey":protected]=>
string(4) "uuid"
["incrementing"]=>
bool(false)
["connection":protected]=>
NULL
["keyType":protected]=>
string(3) "int"
["perPage":protected]=>
int(15)
["timestamps"]=>
bool(true)
["attributes":protected]=>
array(4) {
["zipCode"]=>
string(6) "4651ZX"
["houseNumber"]=>
string(2) "34"
["updated_at"]=>
string(19) "2016-11-28 23:13:47"
["created_at"]=>
string(19) "2016-11-28 23:13:47"
}
["original":protected]=>
array(4) {
["zipCode"]=>
string(6) "4651ZX"
["houseNumber"]=>
string(2) "34"
["updated_at"]=>
string(19) "2016-11-28 23:13:47"
["created_at"]=>
string(19) "2016-11-28 23:13:47"
}
["relations":protected]=>
array(0) {
}
["hidden":protected]=>
array(0) {
}
["visible":protected]=>
array(0) {
}
["appends":protected]=>
array(0) {
}
["guarded":protected]=>
array(1) {
[0]=>
string(1) "*"
}
["dates":protected]=>
array(0) {
}
["dateFormat":protected]=>
NULL
["casts":protected]=>
array(0) {
}
["touches":protected]=>
array(0) {
}
["observables":protected]=>
array(0) {
}
["with":protected]=>
array(0) {
}
["exists"]=>
bool(true)
["wasRecentlyCreated"]=>
bool(true)
}
If in my address model is $incrementing = false;defined, and I $address = $address->fresh();
now call the object $addressis equalNULL
$incrementing = false;, $address = $address->fresh();
$address
object(App\Models\Address)
["table":protected]=>
string(9) "Addresses"
["fillable":protected]=>
array(3) {
[0]=>
string(4) "uuid"
[1]=>
string(7) "zipCode"
[2]=>
string(11) "houseNumber"
}
["primaryKey":protected]=>
string(4) "uuid"
["connection":protected]=>
NULL
["keyType":protected]=>
string(3) "int"
["perPage":protected]=>
int(15)
["incrementing"]=>
bool(true)
["timestamps"]=>
bool(true)
["attributes":protected]=>
array(5) {
["uuid"]=>
string(36) "0e85ea0c-b5c0-11e6-9c20-002590f967ca"
["zipCode"]=>
string(6) "4651ZX"
["houseNumber"]=>
string(2) "34"
["updated_at"]=>
string(19) "2016-11-28 23:11:56"
["created_at"]=>
string(19) "2016-11-28 23:11:56"
}
["original":protected]=>
array(5) {
["uuid"]=>
string(36) "0e85ea0c-b5c0-11e6-9c20-002590f967ca"
["zipCode"]=>
string(6) "4651ZX"
["houseNumber"]=>
string(2) "34"
["updated_at"]=>
string(19) "2016-11-28 23:11:56"
["created_at"]=>
string(19) "2016-11-28 23:11:56"
}
["relations":protected]=>
array(0) {
}
["hidden":protected]=>
array(0) {
}
["visible":protected]=>
array(0) {
}
["appends":protected]=>
array(0) {
}
["guarded":protected]=>
array(1) {
[0]=>
string(1) "*"
}
["dates":protected]=>
array(0) {
}
["dateFormat":protected]=>
NULL
["casts":protected]=>
array(0) {
}
["touches":protected]=>
array(0) {
}
["observables":protected]=>
array(0) {
}
["with":protected]=>
array(0) {
}
["exists"]=>
bool(true)
["wasRecentlyCreated"]=>
bool(false)
}
, !
$address['uuid'] $address->uuid, int(0) ( NULL)