2016-08-15 3 views
2

사용자 테이블을 업데이트 할 수 없습니다. 문제가 어디 있는지 모르겠습니다. 업데이트 된 정보를 제출하면 업데이트 할 수 없습니다. 오류를 표시하지 않습니다. 그러나 테이블은 업데이트되지 않습니다. 제발 도와주세요. 내 edit.blade.php 페이지laravel 5.1에서 사용자 테이블의 값을 업데이트하는 방법

public function getUpdate() { 

     $profile = Auth::user(); 
     return view('admin.article.edit') 
     ->with('profile',$profile); 
    } 

    public function postUpdate(Request $request) { 
$profile = Auth::user(); 

     $this->validate($request, [ 
      'name' => 'required|max:120', 
      'username' => 'required|max:80', 
      'email' => 'required', 
      'password' => 'required' 
      ]); 

     // save users table 
     $profile = Auth::user(); 
     // $user = new App\User; 
     $profile->name = $request->input('name'); 
     $profile->email = $request->input('email'); 
     $profile->username = $request->input('username'); 
     $profile->password = $request->input('password'); 
     $profile->update(); 
} 

입니다 내 컨트롤러입니다

<?php $active="profile"; ?> 
@extends('admin.dashboard') 
@section('content') 
    <!-- Content Wrapper. Contains page content --> 
    <div class="content-wrapper"> 
    <!-- Content Header (Page header) --> 
    <section class="content-header"> 
     <h1> 
     User Profile 
     </h1> 
     <ol class="breadcrumb"> 
     <li><a href="#"><i class="fa fa-dashboard"></i> Home</a></li> 
     <li class="active">User profile</li> 
     </ol> 
    </section> 

<!-- Main content --> 
    <section class="content"> 
     <div class="row"> 
     <!-- left column --> 
     <div class="col-md-10"> 
      <!-- general form elements --> 
      <div class="box box-primary"> 
      <div class="box-header with-border"> 
       <h3 class="box-title">Quick Example</h3> 
      </div> 
      <!-- /.box-header --> 
      <!-- form start --> 
      <form action="{{ route('update') }}" role="form" method="post" enctype="multipart/form-data"> 
       <div class="box-body"> 
       <div class="form-group"> 
        <label for="name">Name</label> 
        <input type="text" class="form-control" name="name" id="name" {{ $errors->has('name') ? 'class=has-error' : '' }} value="{{ Request::old('name') ? Request::old('name') : isset($profile) ? $profile->name : '' }}"> 
       </div> 
       <div class="form-group"> 
        <label for="username">User Name</label> 
        <input type="text" class="form-control" name="institute" id="institute" {{ $errors->has('username') ? 'class=has-error' : '' }} value="{{ Request::old('institute') ? Request::old('username') : isset($profile) ? $profile->institute : '' }}"> 
       </div> 
</div> 
       <!-- /.box-body --> 

       <div class="box-footer"> 
       <button type="submit" class="btn btn-primary">Submit</button> 
       <input type="hidden" name="_token" value="{{ Session::token() }}"> 
       <input type="hidden" name="id" value="{{ $profile->id }}"> 
       </div> 
      </form> 
      </div> 
      <!-- /.box --> 

     </div> 
     <!--/.col (left) --> 
     </div> 
     <!-- /.row --> 
    </section> 
    <!-- /.content --> 
@endsection 

내 경로 파일이

Route::get('/profile/edit', [ 
        'uses' => '[email protected]', 
        'as' => 'edit' 
      ]); 

     Route::post('profile/update', [ 
        'uses' => '[email protected]', 
        'as' => 'update' 
      ]); 
+0

내 postUpdate에서 볼 수 있습니다. $ profile = Auth :: user(); 두 번이나 왜? –

+0

내 사용자 정보를 얻고 업데이트하려면 $ profile = Auth :: user(); 두 번. @Iftikhar uddin –

답변

0

public function getUpdate() { 
     $divisions = Division::all(); 
     $districts = District::all(); 
     $dcategories = Dcategory::all(); 
     $profile = Auth::user(); 

     return view('admin.article.edit') 
     ->with('divisions',$divisions) 
     ->with('districts',$districts) 
     ->with('dcategories',$dcategories) 
     ->with('profile',$profile); 
    } 

    public function postUpdate(Request $request) { 

     $this->validate($request, [ 
      'name' => 'required|max:120', 
      'fee' => 'required|max:5', 
      'division_id' => '', 
      'district_id' => '', 
      'dcategory_id' => '', 
      'education' => '', 
      'institute' => '', 
      'specialty' => '', 
      'hospital' => '', 
      'time' => '', 
      'phone' => '', 
      'image' =>''    
      ]); 


     $doctor = Auth::user(); 
     $doctor->name = $request['name']; 
     $doctor->division_id = $request['division_id']; 
     $doctor->district_id = $request['district_id']; 
     $doctor->dcategory_id = $request['dcategory_id']; 
     $doctor->institute = $request['institute']; 
     $doctor->education = $request['education']; 
     $doctor->specialty = $request['specialty']; 
     $doctor->hospital = $request['hospital']; 
     $doctor->phone = $request['phone']; 
     $doctor->time = $request['time']; 
     $doctor->fee = $request['fee']; 

     // $photo = Photo::find($request['id']); 
     $logo=$request->file('image'); 
     if(!empty($logo)) { 
      $upload='uploads/logo'; 
      $filename=$logo->getClientOriginalName(); 
      $success=$logo->move($upload,$filename); 

      $doctor->image = $filename; 
     } 

그러면 문제가 해결 될 수 있습니다.

+0

고맙습니다. 문제가 해결되었습니다. –

0
$profile = Auth::user(); 

는 새 행을 만들고 $profile->save();는 기록을 저장합니다 .

특정 행을 업데이트하려면 해당 행을 지정하십시오.

$id=$request->input('id'); 

    $profile = User::where(['id'=>$id])->first(); 
    $profile->name = $request->input('name'); 
    $profile->email = $request->input('email'); 
    $profile->username = $request->input('username'); 
    $profile->password = $request->input('password'); 
    $profile->update(); 
+0

작동하지 않았 음. 아직도 그것은 기록을 갱신하지 않았다. @Sanzeeb Aryal –

+0

@JahidMahmud 어떤 오류가 있습니까? –

+0

아니요. 어떤 오류도주지 않았지만 정보를 업데이트하지 않았습니다. @Sanzeeb Aryal –

0

그것은 당신의 폼보기로 인해 갱신되지는 이름의 연구소를 가지고 어떤 사용자 이름은 사용자 이름과 시도에

name="institute" 

변화가 속성입니다. 또한 암호와 이메일 필드가 없습니다.

+0

시도했지만 작동하지 않았습니다. @Iftikhar uddin –

+0

이름 필드를 사용자 이름으로 변경 했습니까? –

+0

'$ profile-> username = $ request-> input ('username');'name = 'username'을 가진 요청에서 사용자를 잡아 내고 name = 'institute'를 가지면 그 방법으로는 작동하지 않을 것입니다. –

0

auth()에서 사용자를 얻는다 고 가정합니다. 그래서

$profile = Auth::user(); 
$profile->name = $request->input('name'); 
$profile->email = $request->input('email'); 
$profile->username = $request->input('username'); 
$profile->password = $request->input('password'); 
$profile->update(); 

$profile = Auth::user(); 
$profile->name = $request->input('name'); 
$profile->email = $request->input('email'); 
$profile->username = $request->input('username'); 
// Hash 
$profile->password = \Hash::make($request->input('password')); 
// Change to save method 
$profile->save(); 

하려면 그것을 시도 변경!

+0

아니요. @ KmasterYC가 작동하지 않았습니다. 사용자 정보를 업데이트하지 않았습니다. –

+0

유효성 검사에 문제가 있음을 확인했습니다. 양식 요청과 일치하지 않습니다. 유효성 검사를 제거하거나 변경하고 다시 테스트하십시오 – KmasterYC

+0

유효성 확인을 위해 업데이트 된 코드가 무엇인지 말해 주시겠습니까 @KmasterYC –

0

시도해보십시오.

먼저 업데이트중인 모든 입력란을 채울 수 있는지 확인하십시오. 이

Route::get('/profile/{profile_id}/edit', [ 
        'uses' => '[email protected]', 
        'as' => 'edit' 
      ]); 

     Route::post('profile/update', [ 
        'uses' => '[email protected]', 
        'as' => 'update' 
      ]); 

를 작성해야 그리고 당신의 컨트롤러를 작성해야 경로에서

앱/Entites/User.php

<?php 
protected $fillable = ['name', 'email', 'password','username']; 

다음 업데이트 기록

$profile = Auth::user(); 
$profile->name = $request->name; 
$profile->email = $request->email; 
$profile->username = $request->institute; 
$profile->password = bcrypt($request->password); 
$profile->save(); 
관련 문제