Search code examples
phplaraveleloquent

Laravel model not filling 1 specific column


In my model, i have the following fillable array:

    protected $fillable = [
        'first_name',
        'last_name',
        'email',
        'street',
        'house_number',
        'province',
        'phone',
        'country',
        'date_of_birth',
        'postcode',
        'account_id',
        'user_id'
    ];

user_id is nullable and account_id is not.

When i try to create a new entity, user_id stays null in my database.

This is my code for saving the entity:

#in controller
$this->dispatch(new Job($user = $request->user(), $client = new Client(),
      $request->only($client->getFillable())
));

#in job class
$client = $this->client->create(array_merge([
       'user_id ' => $this->user->id,
       'account_id' => $this->user->account->id
],$this->variables));

This is all of the data going into the create method:

  "user_id " => 3
  "account_id" => 3
  "first_name" => "patrick"
  "last_name" => "vd pols"
  "email" => "[email protected]"
  "street" => "Dijkgraaf 2"
  "house_number" => "asdasd"
  "province" => "Drenthe"
  "country" => "asdasdsad"
  "date_of_birth" => "14-12-2019"
  "postcode" => "3155GA"

Both user with ID 3 and account with ID 3 exist in my database.

After saving the entity, the user_id is null:

App\Client {#384 ▼
  #fillable: array:12 [▶]
  #connection: "mysql"
  #table: "clients"
  #primaryKey: "id"
  #keyType: "int"
  +incrementing: true
  #with: []
  #withCount: []
  #perPage: 15
  +exists: true
  +wasRecentlyCreated: true
  #attributes: array:13 [▼
    "account_id" => 3
    "first_name" => "patrick"
    "last_name" => "vd pols"
    "email" => "[email protected]"
    "street" => "Dijkgraaf 2"
    "house_number" => "asdasd"
    "province" => "Drenthe"
    "country" => "asdasdsad"
    "date_of_birth" => Carbon\Carbon @1576281600 {#385 ▶}
    "postcode" => "3155GA"
    "updated_at" => "2019-12-14 00:10:03"
    "created_at" => "2019-12-14 00:10:03"
    "id" => 8
  ]
  #original: array:13 [▶]
  #changes: []
  #casts: []
  #dates: []
  #dateFormat: null
  #appends: []
  #dispatchesEvents: []
  #observables: []
  #relations: []
  #touches: []
  +timestamps: true
  #hidden: []
  #visible: []
  #guarded: array:1 [▶]
}

What am i not seeing?

Thanks!


Edit:

I am an idiot.

There was an extra space after user_id:

'user_id ' => $this->user->id

Solved.


Solution

  • You did find the catch!
    But since you want me to write the answer, I gladly do it.

    You had an extra space on your key 'user_id ' => $this->user->id