所以我开始了前端开发的道路。我有一个包含用户描述的表和一个用于更改用户状态的按钮。除验证之外的所有工作都正常,状态正在更改并且页面正确刷新。这是我的代码......
Close()
我将解释我在逻辑上发现的重要内容
if(isset($ usernames)) - >验证通过AJAX请求发送的用户名是否有效
if(!$ user-> get()) - >验证用户是否在数据库中
(!$ user-> get() - > isEmpty()) - >验证用户是否被软删除
我最终想要添加一个功能,其中一个管理员可以销毁一个条目,虽然这样工作正常,页面刷新,用户消失我想我应该警告用户状态没有改变,在数据库中找不到用户。但是 if(!$ user-> get())会被忽略,即使我手动从数据库中删除用户然后运行脚本...一直在搜索数据库API但却一无所获。我做错了什么?
TIA
编辑:为了澄清一点,这里有一些图片来举例说明
答案 0 :(得分:0)
除了实际删除数据库中的记录外,Eloquent还可以"软删除"楷模。模型被软删除后,实际上不会从数据库中删除它们。而是在模型上设置
deleted_at
属性并将其插入到数据库中。如果模型具有非null的deleted_at值,则模型已被软删除。要为模型启用软删除,请使用模型上的Illuminate\Database\Eloquent\SoftDeletes
特征。
您的用户模型必须包含SoftDeletes
特征,例如:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class User extends Model
{
use SoftDeletes;
// ...
要检查用户是否被软删除,请使用trashed
方法:
<?php
$users = App\User::withTrashed()->get();
foreach ($users as $user) {
if ($user->trashed()) {
// this user is soft deleted
} else {
// this user is not deleted
}
}
$users
以外的任何内容都被删除了。
您可以通过执行以下操作来恢复任何软删除的记录:
$user->restore();
答案 1 :(得分:0)
如果要从已删除的记录中恢复(软),则需要使用withTrashed
在中使用
User::withTrashed()->Where('username', '=', $usernames)->restore();