2017-10-30 12 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こんにちは、返信のためのtks私の質問のビューのコントローラを追加しました – blastme

答えて

2

雄弁クエリは、は、自動的にすべてのクエリ結果からソフト削除されたモデルを除外します。

ただし、Eloquentクエリではなく、生DBクエリが使用されています。したがって、クエリでdeleted_at列がnullでない場所も確認する必要があります。

+0

私はあなたがお勧めすることを試みたが、私は実際にそれを実装する方法を知らない私は!= NULLのようなことをするか、あるいはNULLを置くだけですが、laravelについてはまだそれほど確かではありません。私はそういうことをしました。 "( 'deleted_at'、 'NOT NULL') - > get() - > sortByDesc( 'created_at');" $ data ['data'] = DB :: table( 'personal_infos' – blastme

+0

こんにちは、申し訳ありませんが私の間違いを発見しました。私はNOT NULLの代わりにNULLを入れることになっています。助けてくれてありがとう – blastme

+0

優秀、あなたがそれを持ってうれしい! – kerrin

関連する問題