web-dev-qa-db-ja.com

モデルで削除操作を実行する方法

Ruby on Railsユーザーまたはすべてのユーザーを削除するためのRailsコンソールをロードする経験。I Laravel 5が初めてで、sqlite3データベースに既にあるユーザーを削除するのに似たものを探しています。

ユーザーを削除するためにUser::find(1)->delete();について人々が話しているところがわかりますが、どこに置いて実行しますか?削除タスクを実行するコンソールはありますか?テーブルを削除せずにユーザーを削除する方法を知りたいです。ソフト削除したくない。

16
Sylar

このコードは、たとえばコントローラーに配置できます。

使用できます

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

SoftDeletingTrait traitを使用しない場合、または

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

その場合、結果から非表示にするだけでなく、データベースからユーザーを本当に削除する必要があります。

Laravelページ でもっと読むことができます

30

in Laravel 5ではdestroyメソッドを使用できます。

$user->destroy($id);

そして、確かに、あなたはそうするためのコマンドラインを持っています。

$ php artisan tinker

そして、あなたは例えば実行することができます

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

これを行ういくつかの方法。

コントローラーがユーザーを引数として定義している場合:

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

$ idでユーザーを削除することもできます:

User::destroy ($id);

これらのルートを何らかのセキュリティでラップすると仮定します。

編集:スペルの修正

6
Alex Cook

以下の例を使用して、複数のパラメーターを持つデータを削除できます......

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