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

时间:2015-03-19 22:31:54

标签: php laravel sqlite eloquent laravel-5

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

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

5 个答案:

答案 0 :(得分:30)

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

您可以使用

$user = User::find($id);    
$user->delete();

如果您不使用SoftDeletingTrait特质或

$user = User::find($id);    
$user->forceDelete();

如果你这样做,并且你想真正从数据库中删除用户,那么不要只是将其从结果中隐藏起来。

您可以在Laravel page

阅读更多内容

答案 1 :(得分:7)

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

$user->destroy($id);

并且,当然,您有一个命令行可以这样做。

$ php artisan tinker

你可以运行例如

>> $var = new App\User;
>> $user= $user->find($id);
>> $user->destroy();

答案 2 :(得分:5)

有几种方法可以做到这一点。

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

public function destroy(User $user) 
{
    return $user->delete();
}

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

User::destroy ($id);

假设您正在以一定的安全性包装这些路线。

编辑:更正拼写

答案 3 :(得分:3)

  

您可以使用以下示例删除多个数据   参数......

> 
> tableName::where('field_1','=',$para1)
>               ->where('field_2,'=',$para2)
>               ->delete();

答案 4 :(得分:0)

这仍然适用于laravel 7 ,我使用 tinker 命令行和delete()方法:

php artisan tinker

现在我可以直接运行命令了:

> App\User::find($id)->delete();