I have users table and a profiles table structure is:
users table has following fields
id, name, email, password, deleted_at, created_at, updated_at
profiles table has following fields
user_id, role, address, and some more
Now i tinker this
$user = $this->$user->with('Profile')->find(3);
Output was:
App\User {#756 id: 3, name: "Alejandra Kerluke Jr.", email: "balistreri.laurel@example.com", deleted_at: null, created_at: "2016-06-23 05:12:03", updated_at: "2016-06-29 11:05:45", Profile: App\Profile {#768 user_id: 3, role: "", address: """ 50111 Wendy Row Apt. 732\n Kingburgh, OR 42164-7189 """, city: "Manteland", state: "Vermont", country: "Belgium", phone: "1-226-766-4182 x5574", fax: "1-507-985-3523 x708", zip: 48446, status: 0, deleted_at: null, created_at: "2016-06-23 05:12:03", updated_at: "2016-06-23 05:12:03", }, }
Then i did
$user->name="YYYYYY"
$user->email='abc@example.com'
$user->profile->role = 'XXXXX'
$user->push();
here is the stack trace
QueryException in Connection.php line 713:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'where clause' (SQL: update `profiles` set `role` = admin, `updated_at` = 2016-07-12 11:11:48 where `id` is null)
in Connection.php line 713
at Connection->runQueryCallback('update `profiles` set `role` = ?, `updated_at` = ? where `id` is null', array('admin', '2016-07-12 11:11:48'), object(Closure)) in Connection.php line 669
at Connection->run('update `profiles` set `role` = ?, `updated_at` = ? where `id` is null', array('admin', '2016-07-12 11:11:48'), object(Closure)) in Connection.php line 467
at Connection->affectingStatement('update `profiles` set `role` = ?, `updated_at` = ? where `id` is null', array('admin', '2016-07-12 11:11:48')) in Connection.php line 410
at Connection->update('update `profiles` set `role` = ?, `updated_at` = ? where `id` is null', array('admin', '2016-07-12 11:11:48')) in Builder.php line 2072
at Builder->update(array('role' => 'admin', 'updated_at' => '2016-07-12 11:11:48')) in Builder.php line 531
at Builder->update(array('role' => 'admin', 'updated_at' => '2016-07-12 11:11:48')) in Model.php line 1562
at Model->performUpdate(object(Builder), array()) in Model.php line 1481
at Model->save() in Model.php line 1439
at Model->push() in Model.php line 1451
at Model->push() in UserRepository.php line 32
at UserRepository->createOrUpdate(array('_method' => 'PUT', '_token' => 'qTcmQY4T7wYT1Q5nsHWKapDnXngwWbAoAgFnN7iq', 'role' => 'admin', 'name' => 'Jacky Cremin', 'email' => 'cary.will@example.org', 'password' => 'ytceg66r', 'password_confirmation' => 'ytceg66r'), '1') in UserController.php line 56
at UserController->update(object(UserFormRequest), '1')
at call_user_func_array(array(object(UserController), 'update'), array(object(UserFormRequest), 'user' => '1')) in Controller.php line 80
at Controller->callAction('update', array(object(UserFormRequest), 'user' => '1')) in ControllerDispatcher.php line 146
at ControllerDispatcher->call(object(UserController), object(Route), 'update') in ControllerDispatcher.php line 94
at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in ControllerDispatcher.php line 96
at ControllerDispatcher->callWithinStack(object(UserController), object(Route), object(Request), 'update') in ControllerDispatcher.php line 54
at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\UserController', 'update') in Route.php line 174
at Route->runController(object(Request)) in Route.php line 140
at Route->run(object(Request)) in Router.php line 724
at Router->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Authenticate.php line 28
at Authenticate->handle(object(Request), object(Closure))
at call_user_func_array(array(object(Authenticate), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in VerifyCsrfToken.php line 64
at VerifyCsrfToken->handle(object(Request), object(Closure))
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49
at ShareErrorsFromSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 62
at StartSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure))
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Router.php line 726
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 699
at Router->dispatchToRoute(object(Request)) in Router.php line 675
at Router->dispatch(object(Request)) in Kernel.php line 246
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 132
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99
at Kernel->handle(object(Request)) in index.php line 54
at require_once('E:\Projects\new\public\index.php') in server.php line 21
I don't know what's wrong this. i am new to laravel any kind of help will be appreciated.
have you defined the relationship between profile and role models correctly ?
yes i have defined it correctly
Here is the code block of User model
public function profile()
{
return $this->hasOne('App\Profile','user_id');
}
Here is the code block of Profile model
public function user()
{
return $this->belongsTo('App\User','user_id');
}
so what was the problem cause i have 3 tables all relationship right but i cant do the update i dont know the method how it work all i did was this so far
public function update(StoreUser $request, User $user){
$user = User::findOrFail($user);
Sign in to participate in this thread!
The Laravel portal for problem solving, knowledge sharing and community building.
The community