Мягкое удаление все еще отображается в представлении laravel

по какой-то причине, когда я пытаюсь выполнить мягкое удаление своих данных, они не исчезли в моем представлении (home.blade.php), но в моей базе данных был записан столбец delete_at, показывающий дату, когда я его удаляю. Не могли бы вы помочь мне проверить мой код, есть ли с ним какие-либо проблемы, спасибо

Вот мои коды:

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>

Домашний контроллер:

    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', 'HomeController@delete');
Route::get('user/show/{id}','HomeController@getInfo')->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');
    }

person blastme    schedule 30.10.2017    source источник
comment
Как выглядит ваш метод контроллера домашнего вида?   -  person kerrin    schedule 30.10.2017
comment
@kerrin Привет, спасибо за ответ. Я добавил контроллер для представления в своем вопросе.   -  person blastme    schedule 30.10.2017


Ответы (1)


Запросы Eloquent при запросе модели, использующей обратимое удаление, будут автоматически исключать обратимо удаленные модели из всех результатов запроса.

Однако вы используете не запрос Eloquent, а необработанный запрос к БД. Поэтому вам также нужно будет проверить, где столбец delete_at не равен нулю в вашем запросе.

person kerrin    schedule 30.10.2017
comment
Привет, спасибо за ответ, я пытался сделать то, что вы рекомендуете, но я не знаю, как это реализовать на самом деле, в прошлом, когда я делал что-то не нуль, я бы делал что-то вроде! = NULL или просто ставил NOT NULL, но для laravel я все еще не совсем уверен, я сделал что-то подобное, не могли бы вы сказать мне, как правильно это сделать? $data['data'] = DB::table('personal_info')-›where('deleted_at','NOT NULL')-›get()-›sortByDesc('created_at'); - person blastme; 30.10.2017
comment
Привет, извините, я обнаружил свою ошибку, я должен поставить NULL вместо NOT NULL, хахаха. Большое спасибо за помощь - person blastme; 30.10.2017
comment
Отлично, рад, что у вас получилось! - person kerrin; 30.10.2017