我与Worker和Area有外交关系。试图摧毁外国使用记录laravel时的警告消息5.1
很显然,当你想删除一个Area并且它已经被分配时,Laravel会抛出一个错误。
我想添加一个警告,表明他不能这样做,所以我成功地做到这一点的用户:
public function destroy($id)
{
$area = Area::findOrFail($id);
$workers = Worker::all();
foreach ($workers as $worker)
{
if ($worker->area_id == $id)
{
$match = 'found';
}
}
if ($match == 'found')
{
\Session::flash('alert-danger', 'No puedes eliminar area relacionada con empleado, elimina primero el empleado!');
return redirect()->route('areas.index');
} else
{
$area->delete();
\Session::flash('alert-success', 'Area eliminada correctamente!');
return redirect()->route('areas.index');
}
}
为了解释上面的代码,我首先循环通全体职工和比较workers.area_id
与areas.id
,如果发现匹配,它将被存储在$match
变量中。
然后,如果匹配已被“找到”,我使用Laravel的闪光灯向用户发送消息,告诉他他不能删除该区域,因为它与工作人员相关,然后重定向到索引。否则,破坏该区域并重定向。
这有效,它是okey,我只是想知道,如果Laravel已经实施了一些类来管理这种情况。昨天你们帮助我的雄辩,现在我有大约100行代码:)
谢谢你提前!