如何在Model上执行删除操作?

Syl*_*lar 16 php sqlite laravel eloquent laravel-5

来自Ruby on Rails体验,您可以在其中加载rails控制台以删除用户或所有用户.我是Laravel 5的新手,我正在寻找类似于删除sqlite3数据库中已有用户的东西.

我看到人们在谈论User::find(1)->delete();删除用户的位置,但是你把它放在哪里然后运行?是否有控制台来执行删除任务?我想知道如何在不删除表的情况下删除用户.我不想软删除.

Mar*_*łek 31

您可以将此代码放在控制器中.

您可以使用

$user = User::find($id);    
$user->delete();
Run Code Online (Sandbox Code Playgroud)

如果你不使用SoftDeletingTrait特质或

$user = User::find($id);    
$user->forceDelete();
Run Code Online (Sandbox Code Playgroud)

如果你这样做,并且你想真正从数据库中删除用户,而不仅仅是从结果中隐藏它.

您可以在Laravel页面阅读更多内容


小智 7

在Laravel 5中你可以使用destroy方法.

$user->destroy($id);
Run Code Online (Sandbox Code Playgroud)

而且,当然,你有一个命令行来这样做.

$ php artisan tinker
Run Code Online (Sandbox Code Playgroud)

你可以运行例如

>> $var = new App\User;
>> $user= $user->find($id);
>> $user->destroy();
Run Code Online (Sandbox Code Playgroud)


小智 6

几种方法可以做到这一点.

如果您的控制器将用户定义为参数:

public function destroy(User $user) 
{
    return $user->delete();
}
Run Code Online (Sandbox Code Playgroud)

您还可以通过$ id删除任何用户:

User::destroy ($id);
Run Code Online (Sandbox Code Playgroud)

假设您正在使用某些安全性来包装这些路由.

编辑:更正拼写