php – Laravel 5:在扩展User的模型上查找函数
发布时间:2020-12-14 19:40:08  所属栏目:大数据  来源:网络整理 
            导读:我正在使用Laravel 5并且有多个模型(患者,治疗师)从用户模型扩展. 我在DB中有一些虚拟数据(很少有治疗师,很少有患者). 当我想通过id检索治疗师时,我尝试通过Therapist :: find($id)这样做,但得到一个例外: 'IlluminateDatabaseQueryException' with messa
                
                
                
            | 
 我正在使用Laravel 5并且有多个模型(患者,治疗师)从用户模型扩展. 
  我在DB中有一些虚拟数据(很少有治疗师,很少有患者). 当我想通过id检索治疗师时,我尝试通过Therapist :: find($id)这样做,但得到一个例外: 'IlluminateDatabaseQueryException' with message 'SQLSTATE[23000]: 
     Integrity constraint violation: 1062 Duplicate entry '' for key
    'users_email_unique' (SQL: insert into users`几个问题: 编辑 Ajax调用 /getTherapist routes.php文件: Route::get('/getTherapist','HomeController@getTherapist');HomeController.php: public function getTherapist()
{
    $user = Therapist::find(13);
    return $user->toArray();
}完全例外: > Next exception 'IlluminateDatabaseQueryException' 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:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseConnection.php:725
> Stack trace:
> #0 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseConnection.php(681):
> IlluminateDatabaseConnection->runQueryCallback('insert into `us...',> Array,Object(Closure))
> #1 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseConnection.php(454):
> IlluminateDatabaseConnection->run('insert into `us...',Array,> Object(Closure))
> #2 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseConnection.php(410):
> IlluminateDatabaseConnection->statement('insert into `us...',Array)
> #3 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseQueryProcessorsProcessor.php(32):
> IlluminateDatabaseConnection->insert('insert into `us...',Array)
> #4 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseQueryBuilder.php(2055):
> IlluminateDatabaseQueryProcessorsProcessor->processInsertGetId(Object(IlluminateDatabaseQueryBuilder),> 'insert into `us...','id')
> #5 [internal function]: IlluminateDatabaseQueryBuilder->insertGetId(Array,'id')
> #6 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseEloquentBuilder.php(1422):
> call_user_func_array(Array,Array)
> #7 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseEloquentModel.php(1628):
> IlluminateDatabaseEloquentBuilder->__call('insertGetId',Array)
> #8 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseEloquentModel.php(1628):
> IlluminateDatabaseEloquentBuilder->insertGetId(Array,'id')
> #9 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseEloquentModel.php(1597):
> IlluminateDatabaseEloquentModel->insertAndSetId(Object(IlluminateDatabaseEloquentBuilder),> Array)
> #10 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseEloquentModel.php(1488):
> IlluminateDatabaseEloquentModel->performInsert(Object(IlluminateDatabaseEloquentBuilder),> Array)
> #11 C:wampwwwclinicvendorzizacoentrustsrcEntrustTraitsEntrustUserTrait.php(28):
> IlluminateDatabaseEloquentModel->save(Array)
> #12 C:wampwwwclinicappTherapist.php(16): AppUser->save()
> #13 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseEloquentModel.php(538):
> AppTherapist->__construct()
> #14 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseEloquentBuilder.php(628):
> IlluminateDatabaseEloquentModel::hydrate(Array,NULL)
> #15 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseEloquentBuilder.php(316):
> IlluminateDatabaseEloquentBuilder->getModels(Array)
> #16 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseEloquentBuilder.php(286):
> IlluminateDatabaseEloquentBuilder->get(Array)
> #17 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseEloquentBuilder.php(167):
> IlluminateDatabaseEloquentBuilder->first(Array)
> #18 [internal function]: IlluminateDatabaseEloquentBuilder->find(13)
> #19 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseEloquentModel.php(3505):
> call_user_func_array(Array,Array)
> #20 [internal function]: IlluminateDatabaseEloquentModel->__call('find',Array)
> #21 [internal function]: AppTherapist->find(13)
> #22 C:wampwwwclinicvendorlaravelframeworksrcIlluminateDatabaseEloquentModel.php(3519):
> call_user_func_array(Array,Array)
> #23 C:wampwwwclinicappHttpControllersHomeController.php(93): IlluminateDatabaseEloquentModel::__callStatic('find',Array)
> #24 C:wampwwwclinicappHttpControllersHomeController.php(93): AppTherapist::find(13)
> #25 [internal function]: AppHttpControllersHomeController->getTherapist()
> #26 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingController.php(80):
> call_user_func_array(Array,Array)
> #27 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingControllerDispatcher.php(146):
> IlluminateRoutingController->callAction('getTherapist',Array)
> #28 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingControllerDispatcher.php(94):
> IlluminateRoutingControllerDispatcher->call(Object(AppHttpControllersHomeController),> Object(IlluminateRoutingRoute),'getTherapist')
> #29 [internal function]: IlluminateRoutingControllerDispatcher->IlluminateRouting{closure}(Object(IlluminateHttpRequest))
> #30 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingPipeline.php(52):
> call_user_func(Object(Closure),Object(IlluminateHttpRequest))
> #31 C:wampwwwclinicappHttpMiddlewareAuthenticate.php(28): IlluminateRoutingPipeline->IlluminateRouting{closure}(Object(IlluminateHttpRequest))
> #32 [internal function]: AppHttpMiddlewareAuthenticate->handle(Object(IlluminateHttpRequest),> Object(Closure))
> #33 C:wampwwwclinicvendorlaravelframeworksrcIlluminatePipelinePipeline.php(136):
> call_user_func_array(Array,Array)
> #34 [internal function]: IlluminatePipelinePipeline->IlluminatePipeline{closure}(Object(IlluminateHttpRequest))
> #35 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingPipeline.php(32):
> call_user_func(Object(Closure),Object(IlluminateHttpRequest))
> #36 [internal function]: IlluminateRoutingPipeline->IlluminateRouting{closure}(Object(IlluminateHttpRequest))
> #37 C:wampwwwclinicvendorlaravelframeworksrcIlluminatePipelinePipeline.php(103):
> call_user_func(Object(Closure),Object(IlluminateHttpRequest))
> #38 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingControllerDispatcher.php(96):
> IlluminatePipelinePipeline->then(Object(Closure))
> #39 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingControllerDispatcher.php(54):
> IlluminateRoutingControllerDispatcher->callWithinStack(Object(AppHttpControllersHomeController),Object(IlluminateHttpRequest),> 'getTherapist')
> #40 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingRoute.php(174):
> IlluminateRoutingControllerDispatcher->dispatch(Object(IlluminateRoutingRoute),> Object(IlluminateHttpRequest),'AppHttpContro...',> 'getTherapist')
> #41 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingRoute.php(140):
> IlluminateRoutingRoute->runController(Object(IlluminateHttpRequest))
> #42 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingRouter.php(724):
> IlluminateRoutingRoute->run(Object(IlluminateHttpRequest))
> #43 [internal function]: IlluminateRoutingRouter->IlluminateRouting{closure}(Object(IlluminateHttpRequest))
> #44 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingPipeline.php(52):
> call_user_func(Object(Closure),Object(IlluminateHttpRequest))
> #45 C:wampwwwclinicvendorlaravelframeworksrcIlluminateFoundationHttpMiddlewareVerifyCsrfToken.php(64):
> IlluminateRoutingPipeline->IlluminateRouting{closure}(Object(IlluminateHttpRequest))
> #46 [internal function]: IlluminateFoundationHttpMiddlewareVerifyCsrfToken->handle(Object(IlluminateHttpRequest),> Object(Closure))
> #47 C:wampwwwclinicvendorlaravelframeworksrcIlluminatePipelinePipeline.php(136):
> call_user_func_array(Array,Array)
> #48 [internal function]: IlluminatePipelinePipeline->IlluminatePipeline{closure}(Object(IlluminateHttpRequest))
> #49 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingPipeline.php(32):
> call_user_func(Object(Closure),Object(IlluminateHttpRequest))
> #50 C:wampwwwclinicvendorlaravelframeworksrcIlluminateViewMiddlewareShareErrorsFromSession.php(49):
> IlluminateRoutingPipeline->IlluminateRouting{closure}(Object(IlluminateHttpRequest))
> #51 [internal function]: IlluminateViewMiddlewareShareErrorsFromSession->handle(Object(IlluminateHttpRequest),> Object(Closure))
> #52 C:wampwwwclinicvendorlaravelframeworksrcIlluminatePipelinePipeline.php(136):
> call_user_func_array(Array,Array)
> #53 [internal function]: IlluminatePipelinePipeline->IlluminatePipeline{closure}(Object(IlluminateHttpRequest))
> #54 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingPipeline.php(32):
> call_user_func(Object(Closure),Object(IlluminateHttpRequest))
> #55 C:wampwwwclinicvendorlaravelframeworksrcIlluminateSessionMiddlewareStartSession.php(62):
> IlluminateRoutingPipeline->IlluminateRouting{closure}(Object(IlluminateHttpRequest))
> #56 [internal function]: IlluminateSessionMiddlewareStartSession->handle(Object(IlluminateHttpRequest),> Object(Closure))
> #57 C:wampwwwclinicvendorlaravelframeworksrcIlluminatePipelinePipeline.php(136):
> call_user_func_array(Array,Array)
> #58 [internal function]: IlluminatePipelinePipeline->IlluminatePipeline{closure}(Object(IlluminateHttpRequest))
> #59 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingPipeline.php(32):
> call_user_func(Object(Closure),Object(IlluminateHttpRequest))
> #60 C:wampwwwclinicvendorlaravelframeworksrcIlluminateCookieMiddlewareAddQueuedCookiesToResponse.php(37):
> IlluminateRoutingPipeline->IlluminateRouting{closure}(Object(IlluminateHttpRequest))
> #61 [internal function]: IlluminateCookieMiddlewareAddQueuedCookiesToResponse->handle(Object(IlluminateHttpRequest),> Object(Closure))
> #62 C:wampwwwclinicvendorlaravelframeworksrcIlluminatePipelinePipeline.php(136):
> call_user_func_array(Array,Array)
> #63 [internal function]: IlluminatePipelinePipeline->IlluminatePipeline{closure}(Object(IlluminateHttpRequest))
> #64 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingPipeline.php(32):
> call_user_func(Object(Closure),Object(IlluminateHttpRequest))
> #65 C:wampwwwclinicvendorlaravelframeworksrcIlluminateCookieMiddlewareEncryptCookies.php(59):
> IlluminateRoutingPipeline->IlluminateRouting{closure}(Object(IlluminateHttpRequest))
> #66 [internal function]: IlluminateCookieMiddlewareEncryptCookies->handle(Object(IlluminateHttpRequest),> Object(Closure))
> #67 C:wampwwwclinicvendorlaravelframeworksrcIlluminatePipelinePipeline.php(136):
> call_user_func_array(Array,Array)
> #68 [internal function]: IlluminatePipelinePipeline->IlluminatePipeline{closure}(Object(IlluminateHttpRequest))
> #69 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingPipeline.php(32):
> call_user_func(Object(Closure),Object(IlluminateHttpRequest))
> #70 [internal function]: IlluminateRoutingPipeline->IlluminateRouting{closure}(Object(IlluminateHttpRequest))
> #71 C:wampwwwclinicvendorlaravelframeworksrcIlluminatePipelinePipeline.php(103):
> call_user_func(Object(Closure),Object(IlluminateHttpRequest))
> #72 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingRouter.php(726):
> IlluminatePipelinePipeline->then(Object(Closure))
> #73 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingRouter.php(699):
> IlluminateRoutingRouter->runRouteWithinStack(Object(IlluminateRoutingRoute),> Object(IlluminateHttpRequest))
> #74 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingRouter.php(675):
> IlluminateRoutingRouter->dispatchToRoute(Object(IlluminateHttpRequest))
> #75 C:wampwwwclinicvendorlaravelframeworksrcIlluminateFoundationHttpKernel.php(246):
> IlluminateRoutingRouter->dispatch(Object(IlluminateHttpRequest))
> #76 [internal function]: IlluminateFoundationHttpKernel->IlluminateFoundationHttp{closure}(Object(IlluminateHttpRequest))
> #77 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingPipeline.php(52):
> call_user_func(Object(Closure),Object(IlluminateHttpRequest))
> #78 C:wampwwwclinicvendorlaravelframeworksrcIlluminateFoundationHttpMiddlewareCheckForMaintenanceMode.php(44):
> IlluminateRoutingPipeline->IlluminateRouting{closure}(Object(IlluminateHttpRequest))
> #79 [internal function]: IlluminateFoundationHttpMiddlewareCheckForMaintenanceMode->handle(Object(IlluminateHttpRequest),> Object(Closure))
> #80 C:wampwwwclinicvendorlaravelframeworksrcIlluminatePipelinePipeline.php(136):
> call_user_func_array(Array,Array)
> #81 [internal function]: IlluminatePipelinePipeline->IlluminatePipeline{closure}(Object(IlluminateHttpRequest))
> #82 C:wampwwwclinicvendorlaravelframeworksrcIlluminateRoutingPipeline.php(32):
> call_user_func(Object(Closure),Object(IlluminateHttpRequest))
> #83 [internal function]: IlluminateRoutingPipeline->IlluminateRouting{closure}(Object(IlluminateHttpRequest))
> #84 C:wampwwwclinicvendorlaravelframeworksrcIlluminatePipelinePipeline.php(103):
> call_user_func(Object(Closure),Object(IlluminateHttpRequest))
> #85 C:wampwwwclinicvendorlaravelframeworksrcIlluminateFoundationHttpKernel.php(132):
> IlluminatePipelinePipeline->then(Object(Closure))
> #86 C:wampwwwclinicvendorlaravelframeworksrcIlluminateFoundationHttpKernel.php(99):
> IlluminateFoundationHttpKernel->sendRequestThroughRouter(Object(IlluminateHttpRequest))
> #87 C:wampwwwclinicpublicindex.php(54): IlluminateFoundationHttpKernel->handle(Object(IlluminateHttpRequest))
> #88 {main}解决方法
 你在Therapist Models中定义了__construct()方法,不是吗? 
  我猜你错过了$attributes param: public function __construct($attributes = array())
{
    parent::__construct($attributes);
    //do your construction stuff
}(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! | 
