【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