在 laravel 中,我正在创建一个记录,即添加一个新总线。我正在尝试 Laravel Observer 来检查编写逻辑。在这里,我检查了具有相同注册号的总线是否已经存在,如果没有,它应该插入总线。但如果总线已经创建或存在,则不应创建新记录并应发送错误消息。
这是我的总线控制器
public function store(Request $request)
{
$request->validate([
'bus_type_id' => 'required',
'route_id' => 'required',
'reg_num' => 'required',
'seat_capacity' => 'required',
]);
Bus::create($request->all());
return redirect()
->route('bus')
->with('success','New Bus Added successfully.');
}
这是我的 BusObserver,它检查 reg_num 是否存在
public function creating(Bus $bus)
{
$count = Bus::where('reg_num', '=' ,$bus->reg_num)->count();
// dd($count);
if($count == 1) {
// avoid inserting and show error message
}
}
当我这样做dd($count);
时,它会显示具有相同 reg_num 的总线数量,这正是我想要的。但我不想create()
在控制器中执行方法。我也知道我们不能从 Observer 重定向。那么,我应该如何执行此操作?