【发布时间】:2018-10-22 13:39:53
【问题描述】:
我正在寻求有关如何理解 Laravel Eloquent 模型的帮助。
我需要通过Id 删除User,并且我有表Main_info、Personal_info、Holidays、other_info、fm_day、oth_daysoff。
在表格上,我插入了UserId 字段,所以我需要从所有表格中删除选定的UserId?有人可以帮助我如何使用 Laravel Eloquent 模型做到这一点吗?
这是我对delete提交按钮和发布方法的看法:
<div class="container">
<div class="row">
<div class="col">
<div class="card">
<div class="card-head-man">
<span>Filter type: </span>
<a href="javascript:void(0)" class="btn btn-secondary btn-sm">Position</a>
<a href="javascript:void(0)" class="btn btn-secondary btn-sm">Active/No</a>
<a href="javascript:void(0)" class="btn btn-secondary btn-sm">Employment type</a>
<a href="javascript:void(0)" class="btn btn-secondary btn-sm">Location</a>
</div>
</div>
</div>
<div class="col-12">
<div class="card">
<div class="card-header">
<h3 class="card-title">List of employees</h3>
</div>
<div class="table-responsive">
<table class="table card-table table-vcenter text-nowrap">
<thead>
<tr>
<th class="w-1"><a href="#" class="sort-act">ID<span class="caret"></span></a></th>
<th><a href="#" class="sort-act">First Name<span class="caret"></span></a></th>
<th>Last Name</th>
<th>Position</th>
<th>Active/no</th>
<th>Employment type</th>
<th>Location</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
@foreach($allData as $data)
<tr>
<td><span class="text-muted">{{ $data->id }}</span></td>
<td>{{ $data->first_name }}</td>
<td>
{{ $data->last_name }}
</td>
<td>
{{ $data->position }}
</td>
<td>
{{ $data->employment_type }}
</td>
<td>
<span class="status-icon bg-success"></span> Active
<span class="status-icon bg-danger"></span> No
</td>
<td>{{ $data->location }}</td>
<td class="text-right">
<a href="javascript:void(0)" class="btn btn-secondary btn-sm">Manage</a>
<div class="dropdown">
<form action="/deleteFromHome" method="post">
{{csrf_field()}}
<input style="display: none;" type="text" name="deleteUserId" class="form-control" id="inputName3" value="{{ $data->id }}">
<button type="submit" class="btn btn-secondary btn-sm">Delete</button>
</form>
</div>
</td>
<td>
<a class="icon" href="javascript:void(0)">
<i class="fe fe-edit"></i>
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
这是我的控制器现在的操作方式:
public function deleteUserFromHome(Request $req)
{
$userId = $req->input('deleteUserId');
OtherInfo::where('id', $userId)->delete();
OthDaysInfo::where('id', $userId)->delete();
HolidaysInfo::where('id', $userId)->delete();
FMdaysInfo::where('id', $userId)->delete();
PersonalInfo::where('id', $userId)->delete();
PersonalInfo::where('id', $userId)->delete();
MainInfo::where('id', $userId)->delete();
return redirect('home');
}
也许有更好的方法可以从所有表中删除有关所选用户 ID 的所有数据? 我需要一些示例,如何使用 HasMany 函数或其他函数使 Laravel Eloquent 模型删除?
【问题讨论】:
-
如果您有设置数据透视表,那么您可以简单地传递用户模型并使用 detach() 方法。 laravel.com/docs/5.6/…
标签: laravel model controller eloquent