В документации сказано, что Soft Deleted модели автоматически исключаются из
любых выборок.
spoilerAs noted above, soft deleted models will automatically be excluded from query results. However, you may force soft deleted models to appear in a result set using the withTrashed method on the query:
$flights = App\Flight::withTrashed()
->where('account_id', 1)
->get();
https://laravel.com/docs/5.6/eloquent#deleting-models
Однако методы Model::all() и Model::get() мне возвращает все модели, в том числе и удалённые. Это нормальное поведение? И как тогда выбирать все модели кроме удалённых?
Вот он весь мой код:
public function index()
{
return Category::all();
}
Код модели:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Category extends Model
{
use SoftDeletes;
protected $dates = ['deleted_at'];
public static function boot() {
static::deleting(function(Category $category) {
//$subcategories = $category->subcategories;
//foreach ($subcategories as $subcategory) $subcategory->delete();
});
}
}