LoginSignup
ChupiPichu
@ChupiPichu (Chupi)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

【Laravel 8】一つのDelete処理で二つのテーブルの該当を削除するには

解決したいこと

会員制掲示板のユーザー登録時にグループ名とグループIDだけ別のテーブルにしていますが、ユーザー一覧からユーザーを削除する際、ユーザーテーブルからは消せていますが、グループテーブルのほうは該当ユーザーの情報を消せていないので、消せるようにしたいです。以下の情報だけでは足りなければ、教えて頂けたら追加いたします。
下記サイトにも同じ質問を投稿しております。
https://teratail.com/questions/1s2e7wxs5usu8x
https://ja.stackoverflow.com/questions/88778

該当するソースコード

ProfileController.php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;
use App\Models\Group;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\Rule;
use Illuminate\Support\Facades\Storage;
use App\Models\Role;

class ProfileController extends Controller
{
中略
public function delete(User $user, Group $group, Request $request) {
        $user->roles()->detach();
        if($user->avatar !== 'user_default.jpg') {
            Storage::delete('public/avatar/'.$user->avatar);
        }
        $user->delete();
        $group->delete();
        return back()->with('message', 'ユーザーを削除しました');
    }
}

自分で試したこと

グループの箇所を加えなければ下記のコードでユーザー削除の処理はできます。

ProfileController.php
中略
public function delete(User $user, Request $request) {
        $user->roles()->detach();
        if($user->avatar !== 'user_default.jpg') {
            Storage::delete('public/avatar/'.$user->avatar);
        }
        $user->delete();
        return back()->with('message', 'ユーザーを削除しました');
    }
}
0

No Answers yet.

Your answer might help someone💌