8

本番テーブルからテスト データを消去しようとしています。単純な環境では、テストデータを消去するスクリプトを作成できますが、laravel 移行スクリプトで同じことを行うにはどうすればよいでしょうか

実稼働環境にテスト ユーザーがいて、データベースで生成されたすべての関連レコードを消去したいと考えています。シード ファイルでは、電子メール アドレスに基づいて学生 ID を取得し、ID に基づいてコースやその他の情報を削除できます。それがlaravelのやり方のように聞こえるかどうかはわかりません!

学生ID = 101

3 つのコースに登録している 出席記録がある 通信記録がある

今、私は彼のemailIdに基づいて学生IDを取得し、コース、出席、通信テーブルからレコードを削除し、最後に学生テーブルからIDを削除したい

私がやっている

$sdetail = student::where('email','some@test.com')->first();
echo "you are checking fir: ".$sdetail ->id;
$classes= class::where('studentId',"$sdetail->id")->get();
foreach($classes as $class)
{
    echo $class->name;   //print only one record I have three rec!
    DB::table('courses')->where("id",$class->id)->delete();
}

どんなアイデアでもこれを修正してください!

4

3 に答える 3

7

移行内でモデル関数を実行できます - モデルを一番上に含める必要があるだけです。

use App\ModelName

class RemoveTestData extends Migration {

    public function up(){

        ModelName::where('id', $ID)->first()->delete();

    }

    public function down(){

        ModelName::create([
            //Test Data
        ]);

    }
于 2016-01-08T21:58:20.113 に答える