I am using Laravel 5 and have several models ( Patient, Therapist) that extend from the model User.
I have some dummy data in the database (several therapists, few patients).
When I want to get the therapist by id, I try to do this with help Therapist::find($id), but I get an exception:
'Illuminate\Database\QueryException' with message 'SQLSTATE[23000]:
Integrity constraint violation: 1062 Duplicate entry '' for key
'users_email_unique' (SQL: insert into users`
A couple of questions:
1. Why, when I use the function ::find, does it try to insert a new user?
2. How can I use the function ::findfor objects that extend from the user to get the attributes that each model has?
EDIT
Ajax call
/getTherapist
Routes.php:
Route::get('/getTherapist', 'HomeController@getTherapist');
HomeController.php:
public function getTherapist()
{
$user = Therapist::find(13);
return $user->toArray();
}
Full exception:
> Next exception 'Illuminate\Database\QueryException' with message
> 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry
> '' for key 'users_email_unique' (SQL: insert into `users`
> (`updated_at`, `created_at`) values (2016-07-24 13:26:42, 2016-07-24
> 13:26:42))' in
> C:\wamp\www\clinic\vendor\laravel\framework\src\Illuminate\Database\Connection.php:725
> Stack trace:
>
> Illuminate\Database\Connection->runQueryCallback('insert into `us...',
> Array, Object(Closure))
>
> Illuminate\Database\Connection->run('insert into `us...', Array,
> Object(Closure))
>
> Illuminate\Database\Connection->statement('insert into `us...', Array)
>
> Illuminate\Database\Connection->insert('insert into `us...', Array)
>
> Illuminate\Database\Query\Processors\Processor->processInsertGetId(Object(Illuminate\Database\Query\Builder),
> 'insert into `us...', Array, 'id')
>
>
> call_user_func_array(Array, Array)
>
> Illuminate\Database\Eloquent\Builder->__call('insertGetId', Array)
>
> Illuminate\Database\Eloquent\Builder->insertGetId(Array, 'id')
>
> Illuminate\Database\Eloquent\Model->insertAndSetId(Object(Illuminate\Database\Eloquent\Builder),
> Array)
>
> Illuminate\Database\Eloquent\Model->performInsert(Object(Illuminate\Database\Eloquent\Builder),
> Array)
>
> Illuminate\Database\Eloquent\Model->save(Array)
>
>
> App\Therapist->__construct()
>
> Illuminate\Database\Eloquent\Model::hydrate(Array, NULL)
>
> Illuminate\Database\Eloquent\Builder->getModels(Array)
>
> Illuminate\Database\Eloquent\Builder->get(Array)
>
> Illuminate\Database\Eloquent\Builder->first(Array)
>
>
> call_user_func_array(Array, Array)
>
>
>
> call_user_func_array(Array, Array)
>
>
>
>
> call_user_func_array(Array, Array)
>
> Illuminate\Routing\Controller->callAction('getTherapist', Array)
>
> Illuminate\Routing\ControllerDispatcher->call(Object(App\Http\Controllers\HomeController),
> Object(Illuminate\Routing\Route), 'getTherapist')
>
>
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
>
>
> Object(Closure))
>
> call_user_func_array(Array, Array)
>
>
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
>
>
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
>
> Illuminate\Pipeline\Pipeline->then(Object(Closure))
>
> Illuminate\Routing\ControllerDispatcher->callWithinStack(Object(App\Http\Controllers\HomeController),
> Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request),
> 'getTherapist')
>
> Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route),
> Object(Illuminate\Http\Request), 'App\\Http\\Contro...',
> 'getTherapist')
>
> Illuminate\Routing\Route->runController(Object(Illuminate\Http\Request))
>
> Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
>
>
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
>
> Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
>
> Object(Closure))
>
> call_user_func_array(Array, Array)
>
>
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
>
> Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
>
> Object(Closure))
>
> call_user_func_array(Array, Array)
>
>
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
>
> Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
>
> Object(Closure))
>
> call_user_func_array(Array, Array)
>
>
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
>
> Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
>
> Object(Closure))
>
> call_user_func_array(Array, Array)
>
>
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
>
> Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
>
> Object(Closure))
>
> call_user_func_array(Array, Array)
>
>
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
>
>
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
>
> Illuminate\Pipeline\Pipeline->then(Object(Closure))
>
> Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route),
> Object(Illuminate\Http\Request))
>
> Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
>
> Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
>
>
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
>
> Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
>
> Object(Closure))
>
> call_user_func_array(Array, Array)
>
>
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
>
>
> call_user_func(Object(Closure), Object(Illuminate\Http\Request))
>
> Illuminate\Pipeline\Pipeline->then(Object(Closure))
>
> Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
>
>