Есть ли способ мягкого удаления всех существующих строк в таблице? Я пробовал (Prospect :: delete ();) он удалял все строки постоянно, но он не работает при мягком удалении.
посмотрите на это мягкое удаление
используйте эту черту в своей модели:
use Illuminate\Database\Eloquent\SoftDeletes;
и добавьте это в свою модель и схему базы данных:
модель:
class Flight extends Model { use SoftDeletes; /** * The attributes that should be mutated to dates. * * @var array */ protected $dates = ['deleted_at']; }
схема базы данных
Schema::table('flights', function ($table) { $table->softDeletes(); });
Теперь, когда вы вызываете метод delete в модели, столбец deleted_at будет установлен на текущую дату и время. И при запросе модели, использующей мягкие удаления, модели с мягким удалением будут автоматически исключены из всех результатов запроса.
Чтобы определить, был ли удаленный экземпляр данной модели удален, используйте метод trashed:
if ($flight->trashed()) { // }
Обычно он не удаляет строки в базе данных. Вы должны добавить столбец isActive и т. Д. И установить его (1/0) или (true / false). если вы хотите показать строки, вы должны «Выбрать * из таблицы Where isActive = 1»
Если вы используете раму Laravel старше 4.2, вы можете установить мягкое удаление в своей модели,
class ModelName extends Eloquent { protected $table = 'table_name'; protected $softDelete = true; }
Если вы используете Laravel framework 4.2, вы можете установить мягкое удаление в своей модели,
use Illuminate\Database\Eloquent\SoftDeletingTrait; class ModelName extends Eloquent { use SoftDeletingTrait; protected $table = 'table_name'; }
Если вы используете Laravel framework выше 4.2, вы можете установить мягкое удаление в своей модели,
use Illuminate\Database\Eloquent\SoftDeletes; class ModelName extends Eloquent { use SoftDeletes; protected $table = 'table_name'; }
Надеюсь, вы используете Laravel 5. Итак, вы можете использовать третий метод.