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 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |