2017-10-30 7 views
1

데이터에 대한 소프트 삭제를 시도 할 때 내보기 (home.blade.php)에서 사라지지 않았지만 데이터베이스 내에서 deleted_at 열에 삭제 한 날짜가 기록되어 있습니다.소프트 삭제가보기에 계속 표시됨 laravel

home.blade.php

<table class="table table-bordered"> 
     <tr> 
     <th><strong><big>Name: </big></strong></th> 
     <th><strong><big>Action </big></strong></th> 
     </tr> 
     <td> 
     <tr> 
     @foreach($data as $value) 
     <tr>  
     <th><a href="{{route('user.show',['id'=>$value->id])}}">{{$value->Name}}</a></th> 
     <th><form action="{{ url('/home/'.$value->id.'/delete') }}" method="get"> 
     {{ csrf_field() }} 
     <button type="submit">Delete</button> 
     </form></th>    
     </tr> 
     @endforeach 
     </tr> 
     </tr> 
    </table> 

HomeController :

public function getData(){ 
     $data['data'] = DB::table('personal_infos')->get()->sortByDesc('created_at'); 

     if(count($data)>0){ 
     return view('home',$data); 
    }else{ 
    return view('home'); 
} 

public function delete($id){ 
    personal_info::findOrFail($id)->delete(); 
    return back(); 
} 

당신은 내 코드입니다 당신에게 여기

감사, 내가 그것을 어떤 문제가 내 코드를 확인하는 데 도움 수 경로 :

Route::get('/home/{id}/delete', '[email protected]'); 
Route::get('user/show/{id}','[email protected]')->name("user.show"); 

Personal_info 모델 : 부드러운 삭제를 사용하는 모델을 조회 할 때

use Illuminate\Database\Eloquent\Model; 
use Illuminate\Database\Eloquent\SoftDeletes; 
use Eloquent; 

class personal_info extends Eloquent 
{ 
    use SoftDeletes; 
    protected $fillable = array('Name'); 
    protected $table = 'personal_infos'; 
    protected $primaryKey = 'id'; 
    protected $dates = ['deleted_at']; 
     public function user_info1s() { 
     return $this->hasMany('App\user_info1','user_id'); 
    } 
+0

집보기 컨트롤러 메소드는 어떻게 생겼습니까? – kerrin

+0

@kerrin 안녕하세요, 답장을 보내 주셔서 감사합니다. 내 질문에보기 용 컨트롤러를 추가했습니다. – blastme

답변

2

웅변 쿼리, 는 자동으로 모든 쿼리 결과에서 소프트 삭제 모델 제외됩니다.

그러나 희미한 쿼리가 아닌 원시 DB 쿼리을 사용하고 있습니다. 따라서 조회에서 deleted_at 열이 null이 아닌지 확인해야합니다.

+0

안녕하세요. 답장을 보내 주신 데 대해 시도했지만, 실제로 구현할 방법을 모르겠습니다. 나는 같은 것을 할 것이다! = NULL 또는 그냥 NULL을 넣지 만 laravel을 위해 나는 아직 확실하지 않다, 나는 그런 것을했다, 당신은 나에게 그것을 할 적절한 방법을 말해 줄 수 있겠는가? "('deleted_at', 'NOT NULL') -> get() -> sortByDesc ('created_at');"$ data [ 'data'] = DB :: table ('personal_infos' – blastme

+0

안녕하세요, 죄송합니다. 내 실수를 발견했습니다. 대신 NULL이 아닌 NULL을 사용하는 것이 좋습니다. 하하하. 도와 주셔서 대단히 감사합니다 – blastme

+0

훌륭해, 다행이야! – kerrin