laravel return 函数内部重定向

laravel return Redirect inside function

我的控制器上有这段代码,但是 return 不起作用,因为它在函数内部,我怎样才能让它起作用?
我这样做是为了确保数据保存在数据库中并重定向到面板。

public function save(){
 .
 .
 .
 Offer::saved(function($offer)                
 {
    Log::info('saved'); 
    //send email, etc.
    return Redirect::to('/panel');
 });
}

感谢您的帮助。

您真的需要在 saved 事件中进行重定向吗?

与此类似的东西应该有效:

public function save(){
    if($offer->save()){
        return Redirect::to('/panel');
    }
}

(如果一切顺利,save() 将 return 为真)


但是,如果您真的需要在活动中这样做,您可以手动调用send()到"return"响应:

Offer::saved(function($offer)                
{
    Log::info('saved'); 
    Redirect::to('/panel')->send();
});

编辑

对于这样的查询:DB::table('offers')->where('id',$inputs['id'])->update($fields);

您也可以检查 return 值。 update 方法将 return 计算受影响的行数。因此,如果那是 > 0truthy,则记录已更新。

$affectedRows = DB::table('offers')->where('id',$inputs['id'])->update($fields);
if($affectedRows){
    return Redirect::to('/panel');
}

但如果您已经设置了 Eloquent 模型,为什么还要费心使用查询生成器:

$offer = Offer::find($inputs['id']);
$saved = $offer->update($fields);
if($saved){
    return Redirect::to('/panel');
}