我遇到的问题是我试图这样做,所以当我删除用户帐户时,与该帐户相关的所有内容都会被删除。这里的问题是,在我保存用户信息的表中,没有外键引用,它们全部来自其他表向我的用户表。
这里是一个示例(链接,因为我不够高,无法发布图像):
我的问题(粉红色是我所拥有的,蓝色是我想要的),变得很简单(涂上油漆):
这是删除按钮的查看代码:
<th> <a href="/instagramDelete/{{$instagramAccount->id}}"> <button class="btn btn-danger btn-circle btn-sm"><i class="fas fa-trash"></i></button> </a> </th>
我的控制器中的代码:
public function delete($id)
{
DB::table('instagram_accounts')->where('id', $id)->delete();
return redirect('/instagram');
}
(仅在与该用户相关联的其他页面没有来自该用户的数据时有效)
我网络上的代码(我不知道是否需要在此处添加代码)
Route::get('/instagramDelete/{id}', 'InstagramAccountController@delete')->middleware('auth');
我的模型中的代码:
class InstagramAccount extends Model
{
public function configuration()
{
return $this->hasOne(Configuration::class, 'account_id');
}
}
我希望这足以让您了解我的意思,因为我认为这个问题有点含糊。
如果您需要更多代码或其他东西,请询问。
一如既往,在此先感谢您!
答案 0 :(得分:2)
您可以在迁移文件中使用层叠来实现此目的。这样,当您从父表中删除时, 其他表上的相关数据将被删除
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
引用:https://laravel.com/docs/5.8/migrations#foreign-key-constraints